ฉันมีปัญหากับ rsync ของ Cygwine ด้วยสคริปต์ Powershell ฉันพยายามถ่ายโอนไดเร็กทอรีจากเซิร์ฟเวอร์ Novell ไปยังเซิร์ฟเวอร์ Windows
เส้นทางสำหรับแหล่งที่มาคือตัวแปรที่มาจากไฟล์ CSV
ฟังก์ชัน CopyRsync ([string]$source,[string]$dest){
$sourceRoot = "รูท@"+$ซอร์ส +"/"
$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 ข้อมูลส่วนตัว'
$dfs = "C:\temp\Rsync"
CopyRsync - แหล่งที่มา $novel -dest $dfs
หากเส้นทางต้นทางในตัวแปรไม่มีช่องว่าง สคริปต์จะทำงานอย่างถูกต้อง แต่ถ้าเส้นทางมีช่องว่าง เนื้อหาของตัวแปรจะถูกแยกวิเคราะห์ด้วยเครื่องหมายคำพูด และสคริปต์จะหยุดทำงานเนื่องจากเซสชัน SSH ได้รับ "root@. .. ในฐานะผู้ใช้ที่มีเครื่องหมายคำพูดในตอนต้นของรูทผู้ใช้เช่นนี้
"E:\cwRsync\bin\rsync.exe" -vrts --progress --whole-file --no-compress --no-checksum -e /cygdrive/e/CWrsync/bin/ssh "[email protected] .local:/media/nss/rep01/Com/Com dir Soins info/" /cygdrive/g/Shares/C:\temp\Rsync --delete-before
ฉันจะแยกวิเคราะห์ตัวแปรเพื่อละเว้นคำพูดจากตัวแปรสคริปต์ได้อย่างไร