2017-07-26 4 views
4

は、私は現在のディレクトリ内のすべてのファイルをループするには、Windowsバッチスクリプトを次ています定義済みリストを持つすべてのファイルをループにバッチまたは拡張セットおよび他のすべての種類のファイルを無視する

FOR %%F in (%CD%\*.*) DO (
    :: I am doing my process here 
) 

私は私ができる知っています

php 
phtml 
css 
js 
sql 
xml 

どのように私はでやっていることを達成することができます。また、単一のFORループで*.extを使用して、特定のファイルタイプをループ、しかし、私はすべてのファイル・タイプの下に与えられ、他のすべてのタイプを無視してループする必要がありますわずかな変更私のコードは可能な限り?

私はバッチスクリプタのようなものではないので、どんな助けでも大歓迎です。

答えて

1

バッチファイルでこのコマンドラインを使用するとどうなりますか?

for %%I in (*.php *.phtml *.css *.js *.sql *.xml) do echo "%%I" 

それとも、より良いあなたが何をしたいかに応じて:

for /F "delims=" %%I in ('dir /A-D /B *.php *.phtml *.css *.js *.sql *.xml 2^>nul') do echo "%%I" 

隠し属性を持つファイルにもDIR作品とのバージョンが設定され、現在のディレクトリ内のファイルの名前が変更されたときに優れています、移動または削除、すなわち、現在のディレクトリのファイルリストは、のループのために処理されたファイルのリストのためにのために変更されますのために一度変更されませんDIRコマンドが実行されますが、これは最初の解決策を使用する場合には当てはまりません。最初の解決策は、ファイルの二重処理、予期しないファイルのスキップ、または現在のディレクトリでファイルの名前変更、移動、変更または削除などの無限ループを起こすなどの予期しない動作が発生する可能性があります。

コマンドプロンプトウィンドウfor /?dir /?で、引数リストに複数のワイルドカードパターンを指定することをサポートする2つのコマンドについてのヘルプを表示します。

+0

注:引数として 'for/f'とテキストファイルを使用すると、実行時にファイルタイプを表す文字列を作成でき、ハードコードする必要はありません。 – geisterfurz007

関連する問題