Powershell Cygwin 使用 Rsync 远程作为变量复制数据

Powershell Cygwin 使用 Rsync 远程作为变量复制数据

我在使用 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 无法正确解释引号

相关内容