我仍然是PowerShell的新手,需要一些帮助。
我在名为c:\scripts\run\
的文件夹中有一些.bat文件
我想逐个运行它们,但我不知道它有多少,它会不时变化。
所以我想用这样的foreach
运行一个循环:
foreach ($file in get-childitem c:\scripts\run | where {$_.extension -eq ".bat"})
但我现在不知道如何运行它们。 我知道我可以像这样逐一运行它们:
./run1.bat
./run2.bat
./run3.bat
但我该如何实现呢? 谢谢!
答案 0 :(得分:10)
试试这个:
Get-Childitem -Path c:\scripts\run -Filter *.bat | % {& $_.FullName}
答案 1 :(得分:3)
您可以使用
& $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) {
...
}
}