私はファイル名が特定の単語で始まるディレクトリ内のファイルのみを反復するようにbatファイルを作成しようとしています。例については :
のcompanyName .module1.exe
のcompanyNameが.bat経由でディレクトリ内の特定のファイルを繰り返します。
を.module2.dll私はファイルを反復処理する方法を知っているが、特定の条件のために自分の名前を確認する方法を知りません。
私はファイル名が特定の単語で始まるディレクトリ内のファイルのみを反復するようにbatファイルを作成しようとしています。例については :
のcompanyName .module1.exe
のcompanyNameが.bat経由でディレクトリ内の特定のファイルを繰り返します。
を.module2.dll私はファイルを反復処理する方法を知っているが、特定の条件のために自分の名前を確認する方法を知りません。
あなたのバッチファイルに次の行を追加します
for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)
このスクリプトを、現在の作業ディレクトリ内のcompanyName接頭辞で始まりますecho
すべてのファイル(ファイルのみ)。 echo
を、代わりに実行する他のコマンドと置き換えてください。
アップデート1:別のディレクトリに見えるためには、あなたのいずれかを行うことができ
for /F "eol=: tokens=*" %%A in ('dir /A-D /B "pathToLookIn/companyName*"') do (echo %%~fA)
またはpathToLookInは、完全修飾パスまたは相対パスをある
pushd \ & cd "pathToLookIn" & (for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)) & popd
。
アップデート2:私は@dbenhamが提案されているよう;
で始まるファイル名を処理するためにfor /F
ループを更新しました。 dir
の出力を反復することはエラーが発生しやすいと多くの場合、Unicode文字をマングルすること
for %%f in (companyName*) do (
...
)
注:ファイルを反復処理する方法を知っていれば
まあ、その後、ちょうどその知識を使用しています。 for
は反復処理が可能であるため、劣位オプションを使用する必要はほとんどありません。
あなたのコードは完璧に動作しますが、特定のディレクトリを使用する場合はすべてのファイルが必要です。私は次のコマンドを使用します FOR/F "tokens = *" %% A in( 'dir/B "Company *"/b D:\ DLLS \ current ")do(ECHO %% A) どこが間違いですか? – Polaris
現在の作業ディレクトリを特定のディレクトリに変更する方法は? – Polaris
私は今道路に出ています。私はすぐに私の答えを更新します。 – mrvincenzo