Powershell 如何找到所有.bat文件并逐个执行它们?
我对PowerShell还是很陌生,需要一些帮助 我在一个名为:Powershell 如何找到所有.bat文件并逐个执行它们?,powershell,batch-file,powershell-2.0,Powershell,Batch File,Powershell 2.0,我对PowerShell还是很陌生,需要一些帮助 我在一个名为:c:\scripts\run\ 我想一个接一个地运行它们,但我不知道我有多少,它会时不时地变化 所以我想用foreach运行一个循环,如下所示: foreach ($file in get-childitem c:\scripts\run | where {$_.extension -eq ".bat"}) 但我现在不知道如何操作它们。 我知道我可以这样一个接一个地运行它们: ./run1.bat ./run2.bat ./run
c:\scripts\run\
我想一个接一个地运行它们,但我不知道我有多少,它会时不时地变化
所以我想用foreach
运行一个循环,如下所示:
foreach ($file in get-childitem c:\scripts\run | where {$_.extension -eq ".bat"})
但我现在不知道如何操作它们。
我知道我可以这样一个接一个地运行它们:
./run1.bat
./run2.bat
./run3.bat
但我如何实现这一点?
谢谢 您可以使用
& $file.FullName
在你的循环中
不过,我可能只使用管道,而不是显式的foreach
循环:
Get-ChildItem C:\scripts\run -Filter *.bat | ForEach-Object { & $_.FullName }
如果要在每个批处理文件运行后进行其他检查:
gci C:\scripts\run -fi *.bat | % {
& $_.FullName
if (Test-Path C:\scripts\run\blah.log) {
...
}
}
试试这个:
Get-Childitem -Path c:\scripts\run -Filter *.bat | % {& $_.FullName}
也谢谢你。是否有方法检查每个正在运行的bat文件之间的脚本是否已成功运行?我的脚本创建日志文件,我可以检查这些文件。当然,您可以在
ForEach对象中使用整个块。