1

cmd.exe問題は、Windowsスクリプト ファイルではなく、実際の DOS バッチ ファイルに関するものです。

for特定の拡張子を持つファイルをループ処理から除外するにはどうすればよいですか?

@echo off

set myExtension=

for /r C:\ %%i in (*) do (
    ::notDesirableExtension
    if myExtension != gif or jpg
        ...
    echo myFiles >> F:\list.txt
) 
4

1 に答える 1

3

FOR /R にアクセスできるということは、コマンド拡張機能にアクセスできるということです。したがって、答えは簡単です。

@echo off
for /r C:\ %%i in (*) do (
  if "%%~xi" neq ".jpg" if "%%~xi" neq ".gif" >>F:\list.txt echo %%i
)

ただし、FINDSTR にもアクセスできる必要があるため、FOR ループを使用する理由はまったくありません。この FINDSTR ソリューションは、はるかに高速です。また、バッチ ファイルは必要ありません。コマンドラインで問題なく動作します。

dir /s /b /a-d-h-s | findstr /live ".jpg .gif" >F:\list.txt

コマンド拡張は Windows 2000 まで導入されませんでした。これは真の DOS ではありません。

于 2012-06-12T22:22:42.303 に答える