簡體   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