[英]How do you run batch files from Powershell?
传统上,我能够执行以下操作:
Start-Process -FilePath "\\server\Install.bat" -Wait
但是,每次我运行它时,屏幕上都会出现一个命令提示符 flash 然后消失,安装程序永远不会启动。 但是,如果我导航到批处理文件位置并双击它以手动运行它,它运行得很好。 我发誓我以前做过,但是 Powershell 无法运行批处理文件吗?
编辑:批处理文件代码:
SentinelAgent_windows_v4_4_2_143.exe /SITE_TOKEN=(sitecode) /SILENT
站点代码显然包含我们设施的正确站点代码。
编辑2:附加信息:
我的Start-Process
包含批处理文件的 FQDN 路径。 我还尝试了使用 FQDN 到批处理文件的&
以及在 Powershell 中尝试 CLI 命令。 都产生相同的结果。 我还尝试将start SentinelAgent_windows_v4_4_2_143.exe
和start /wait SentinelAgent_windows_v4_4_2_143.exe
包含到批处理文件中,结果相同。
我仍然可以通过双击手动运行批处理文件,效果很好。 但无论我尝试从 Powershell 调用它,它都会失败并显示“SentinelAgent_windows_v4_4_2_143.exe 未被识别为内部或外部命令”
编辑 3,因为在评论中回复需要太多字符:
CMD 到 PowerShell,运行带有 XML 的 exe,作为可能的故障排除步骤。 我尝试了以下所有方法,包括 FQDN:
\\server.domain.com\SentinelAgent_windows_v4_4_2_143.exe /SITE_TOKEN=xxxxx /SILENT
& \\server.domain.com\SentinelAgent_windows_v4_4_2_143.exe /SITE_TOKEN=xxxxx /SILENT
Start-Process -Wait -FilePath "\\server.domain.com\SentinelAgent_windows_v4_4_2_143.exe" -ArgumentList '/SITE_TOKEN=xxxxx', '/SILENT'
Start-Process -Wait "\\server.domain.com\SentinelAgent_windows_v4_4_2_143.exe" '/SITE_TOKEN=xxxxx', '/SILENT'
所有这些都在搜索中直接指向带有 FQDN 的 .exe 文件,并且都产生以下内容: “SentinelAgent_windows_v4_4_2_143.exe 未被识别为内部或外部命令”
我还尝试将文件重命名为SentinelAgent.exe ,但它只返回与更新名称相同的错误。
我还尝试将整个目录复制到 C:\Temp 并在那里运行 .bat/.exe 命令 - 相同的错误消息。
我用过:
Invoke-Expression -Command 'cmd.exe /C <executable path and args>'
这是特定于运行命令行命令的。 可执行文件应该不是问题,因为操作系统知道如何处理该类型的文件。 正如其他人指出的那样,在这种情况下,a.cmd 或 .bat 文件没有任何价值,并且会造成晦涩难懂。
在这种情况下,语句将是:
Invoke-Expression -Command 'cmd.exe /C \\server\SentinelAgent_windows_v4_4_2_143.exe /SITE_TOKEN=xxxxx /SILENT'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.