Linux
使用 Rsync 遠端作為變數的 Powershell Cygwin 複製數據
我對 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 "root@server.domaine.local:/media/nss/rep01/Com/Com dir Soins info/" /cygdrive/g/Shares/C:\temp\Rsync --delete-before
如何解析變數以忽略腳本變數中的引號?
我使用 Visual Studio Code,程式碼執行良好。我認為 Powershell 的 ISE IDE 沒有正確解釋引號