首页 > 解决方案 > 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

解决方案


由于您在 PowerShell 中运行,因此 cmd.exe 样式变量不起作用。

因此%DATE:/=-%-实际上将是包含无效字符的字符串。您可以使用Get-Datecmdlet 生成相同格式的日期。

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"

推荐阅读