我在使用 Cygwine 的 rsync 时遇到了问题。我尝试使用 Powershell 脚本将目录从 Novell 服务器传输到 Windows 服务器
源路径是来自 CSV 文件的变量
Function CopyRsync ([string]$source,[string]$dest){
$sourceRoot = "root@"+$source +"/"
$dest = "/cygdrive/g/Shares/" +$dest
cmd.exe /C "e:\cwRsync\bin\rsync.exe" -vrts --progress --whole-file --no-compress --no-checksum -e "/cygdrive/e/CWrsync/bin/ssh" $sourceRoot $dest --delete-before
}
$novel = 'server.domaine.local:/media/nss/rep01/Com/Com dir Soins info'
$dfs = "C:\temp\Rsync"
CopyRsync -source $novel -dest $dfs
如果变量中的源路径不包含空格,则脚本可以正确运行,但如果路径包含空格,则变量的内容将用引号进行解析,并且脚本将停止运行,因为 SSH 会话以用户 root 开头的用户身份接收“root@...”
"E:\cwRsync\bin\rsync.exe" -vrts --progress --whole-file --no-compress --no-checksum -e /cygdrive/e/CWrsync/bin/ssh "[email protected]:/media/nss/rep01/Com/Com dir Soins info/" /cygdrive/g/Shares/C:\temp\Rsync --delete-before
我如何解析变量以忽略脚本变量的引用?
答案1
我使用 Visual Studio Code,代码运行良好。我认为 Powershell 的 ISE IDE 无法正确解释引号