如何让Powershell对bat文件提示符运行命令?
我正在使用Powershell运行一个bat文件,该bat文件将打开一个单独的命令提示符。在新的命令提示符中,我必须为它指定特定的文件路径以及文件和扩展名才能运行更新。BAT文件正在调用加载该文件的JAR文件 以下是我所拥有的:如何让Powershell对bat文件提示符运行命令?,powershell,Powershell,我正在使用Powershell运行一个bat文件,该bat文件将打开一个单独的命令提示符。在新的命令提示符中,我必须为它指定特定的文件路径以及文件和扩展名才能运行更新。BAT文件正在调用加载该文件的JAR文件 以下是我所拥有的: <# Variables #> $RBT = "\\Testserver\D$\Test\Tool\Update_Loader.bat" $RB = "\\Testserver\D$\Test\Tool\Funtimes.met"
<# Variables #>
$RBT = "\\Testserver\D$\Test\Tool\Update_Loader.bat"
$RB = "\\Testserver\D$\Test\Tool\Funtimes.met"
<# Process #>
<# Test #1 = Failed; Just a blank window
Start-Process "cmd.exe" "/c $RBT" -Verb RunAs -Wait
#>
<# Test #2 = Partial Fail; BAT file command prompt opened but waited for the file path insertion
Start-Process .\Update_Loader.bat
.\Update_Loader.bat \\Testserver\D$\Test\Tool\Funtimes.met
#>
<# Test #3 = Fail; Just a blank window
Start-Process cmd -ArgumentList "/c D:\Test\Tool\Update_Loader.bat" -RedirectStandardOutput "D:\Test\Tool\Funtimes.met"
#>
<# Test #4 = Partial Fail; BAT file command prompt opened but did not deploy the file
Invoke-Command -ScriptBlock {Start-Process "cmd.exe" "/k D:\Test\Tool\Update_Loader.bat" -Verb RunAs | Invoke-Expression "D:\Test\Tool\Funtimes.met"}
#>
<# Test #5 = Partial Fail; BAT file command prompt opened but did not deploy the file
Start-Process "cmd.exe"
Invoke-Command -ScriptBlock {"D:\Test\Tool\Update_Loader.bat" | Start-Process "D:\Test\Tool\Funtimes.met"}
#>
$RBT=“\\Testserver\D$\Test\Tool\Update\u Loader.bat”
$RB=“\\Testserver\D$\Test\Tool\Funtimes.met”
正如你所看到的,我已经尽了一切努力使它尽可能简单。我担心我会把事情弄得比实际需要的更复杂。我想我只是缺少一个参数或使用了错误的命令。试试这个。。。
一个简单的函数,允许将命令传递给PSWindows或PSCore
Function Start-ConsoleCommand
{
[CmdletBinding(SupportsShouldProcess)]
[Alias('scc')]
Param
(
[string]$ConsoleCommand,
[switch]$PoSHCore
)
If ($PoSHCore)
{Start-Process pwsh -ArgumentList "-NoExit","-Command &{ $ConsoleCommand }" -Wait}
Else
{Start-Process powershell -ArgumentList "-NoExit","-Command &{ $ConsoleCommand }" -Wait}
}
冒着听起来愚蠢的风险,您是否验证过直接运行
Update_Loader.bat
(在常规的cmd
命令提示符下在PowerShell之外)确实有效,并且不会给您相同的“空白窗口”,这可能表明后台发生了什么事情?bat文件在PowerShell之外有效。我只是想为自己简化这个过程,减少输入文件路径时的人为错误。很抱歉回复太晚,我会尽快尝试你的功能。