繁体   English   中英

如何从 Powershell 运行批处理文件?

[英]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.exestart /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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM