【发布时间】:2018-07-25 03:26:07
【问题描述】:
我希望能够使用 Sysnative cmd 执行 powershell 脚本并将结果输出到日志。
当我运行(System32)时:
C:\Windows\System32\cmd.exe /C "powershell -file “C:\…\ScriptWithErrors.ps1" >> C:\…\Log.log”
我的日志将显示 powershell 文件中的错误(通常在终端中显示为红色)
但是当我运行(Sysnative)时:
C:\Windows\Sysnative\cmd.exe /C "powershell -file “C:\…\ScriptWithErrors.ps1" >> C:\…\Log.log”
我的日志不会显示我没有明确使用 Write-Host $_.Exception 的 powershell 脚本中的任何错误。
有没有办法执行powershell脚本并强制输出错误输出?
另外,为什么使用cmd \C 会使 echo 无法正常工作?
>> C:\Windows\Sysnative\cmd.exe /C "echo time \t”
>> time /t (Output)
>> 11:20 AM (Expected output)
【问题讨论】:
-
为什么要使用不匹配的智能引号和双引号?为什么要将 powershell 命令输出发送到文件而不是 cmd.exe 输出?
-
匹配智能引号和双引号的示例是什么?而且因为我想将输出保存在日志中。
-
@Compo 另外,将 cmd.exe 的输出重定向到日志也不起作用。
-
不应该有任何智能引号,再看看你的代码,它们同时使用了
“和"。您也可以在.ps1文件名周围使用单引号:…\cmd.exe /C "powershell -file 'C:\…\ScriptWithErrors.ps1'">>"C:\…\Log.log"。 -
您是否尝试过直接启动 powershell 而不是通过命令提示符代理它?
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe或%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe或sysnative在您的情况下。
标签: powershell batch-file cmd