powershell - PowerShell 和 Robocopy - Robocopy 未启动。
问题描述
我正在尝试编写一个可以在 PS ISE 中手动运行的 PS 命令。除 RoboCopy 外,一切正常。如果我去掉 Log 参数,它工作正常。你能告诉我我做错了什么吗?运行 Windows 10。
Get-ChildItem * -Include *.txt -Recurse | Remove-Item -verbose
Start-Process "RoboCopy.exe" -argumentlist "`"C:\SSDT`" `"C:\SSDT2`" /COPY:DAT /E /Z /FFT /MT:20 /R:2 /W:3 /XO /XF *.tmp /XF desktop.ini /XF Default.rdp /LOG:C:\Backup\%DATE:/=-%-RoboCopy.txt /V /TEE"
解决方案
由于您在 PowerShell 中运行,因此 cmd.exe 样式变量不起作用。
因此%DATE:/=-%-
实际上将是包含无效字符的字符串。您可以使用Get-Date
cmdlet 生成相同格式的日期。
Get-Date -Format 'ddd MM-dd-yyyy'
然后使用子表达式$()
,您可以将其插入到您的命令中。
Start-Process "RoboCopy.exe" -argumentlist "`"C:\SSDT`" `"C:\SSDT2`" /COPY:DAT /E /Z /FFT /MT:20 /R:2 /W:3 /XO /XF *.tmp /XF desktop.ini /XF Default.rdp /LOG:C:\Backup\$(Get-Date -Format 'ddd MM-dd-yyyy')-RoboCopy.txt /V /TEE"