5

私はまだ PowerShell に慣れていないので、助けが必要です。

次のフォルダーにいくつかの .bat ファイルがあり、c:\scripts\run\ それらを 1 つずつ実行したいのですが、いくつあるかわかりません。時々変更されます。

だから私はこのようなループを実行したいforeach:

foreach ($file in get-childitem c:\scripts\run | where {$_.extension -eq ".bat"})

しかし、私は今それらを実行する方法がわかりません。次のように1つずつ実行できることを知っています:

./run1.bat
./run2.bat
./run3.bat

しかし、どうすればそれを実装できますか? ありがとう!!

4

2 に答える 2

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) {
    ...
  }
}
于 2013-07-31T15:28:16.740 に答える