Tools : Windows 7 & powershell & Rsync
Goal : Create a bat file to launch rsync in such a way that the output is scrolling in the new window. Once command terminates the window shall remain open for inspection.
Tried this code :
start powershell \k C:\Program Files2\Git\usr\bin\rsync.exe -av /d/Images/Dia_scans /f/Shiva_D/Images When double click on the bat file there seems to be a short popup. But it closes and then nothing happens.
What's missing?
UPDATE:
Following works in cmd:
start cmd /K "C:\Program Files2\Git\usr\bin\rsync.exe" -av /d/Images/Dia_scans /f/Shiva_D/Images But desire is to use powershell:
start powershell -NoExit "C:\Program Files2\Git\usr\bin\rsync.exe" -av /d/Images/Dia_scans /f/Shiva_D/Images Throws this error:
The term 'C:\Program' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:11 + C:\Program <<<< Files2\Git\usr\bin\rsync.exe -av /d/Images/Dia_scans /f/Shiva_D/Images + CategoryInfo : ObjectNotFound: (C:\Program:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException What is proper quotation rule for powershell vs cmd when path / argument has space char?
UPDATE2:
Proposed code:
start powershell -NoExit Start-Process -NoNewWindow "C:\Program Files2\Git\usr\bin\rsync.exe -av --delete /d/Images/Dia_scans /f/Shiva_D/Images" Gives popup window with this error.
Start-Process : A parameter cannot be found that matches parameter name 'av'. At line:1 char:71 + Start-Process -NoNewWindow C:\Program Files2\Git\usr\bin\rsync.exe -av <<<< --delete /d/Images/Dia_scans /f/Shiva_D/Images + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand UPDATE3/CLOSING
It's easier to user cmd. I am abandoning powershell for now. Using this code in cmd works fine and is reasonably intuitive.
start cmd /K "C:\Program Files2\Git\usr\bin\rsync.exe" -av --delete /d/Images/Dia_scans /f/Shiva_D/Images
/k, and you have the wrong slash (backwards) anyway. See Microsoft Docs on about_PowerShell_exe and you might also find SS64 onCMDof interest as well.powershell.exefor Windows PowerShell,pwshfor PowerShell (Core) 7+) from the outside, using (possibly implied)-Command/-c, you need to escape"chars. you want passed through as part of the command:\"works in principle, but can break when calling fromcmd.exe. In that case, use"^""(sic) withpowershell.exe, and""withpwsh.exe, inside overall"..."quoting. See the linked duplicate for details.