3

「pdf」と呼ばれるものを除くすべてのディレクトリをリストする必要があるバッチファイルを作成しています。

これは私が現在持っているものの簡単な例で、すべてのディレクトリを返します:

for /r /d %%D in ("*") do (
        echo %%D
    )

以下に相当するものはありますか:

for /r /d %%D not in ("pdf") do (
        echo %%D
    )

試してみると、次の出力が得られます。

"not was unexpected at this time."  
C:\txt-in\for /r /d %D not in ("pdf") do (
4

2 に答える 2

4

あなたは最初のスニペットに近づいています。ループ内にステートメントを追加するifか、ループを変更してdirコマンドを。で使用するだけfindです。

「pdf」ではなくフォルダ名を表示する

for /r /d %%D in (*) do (
    if /i not "%%~nxD"=="pdf" (
        echo %%D
    )
)

または、「pdf」を含まないフォルダ名を表示します

for /f "delims=" %%D in ('dir /a:d /b ^| find /v /i "pdf"') do (
    echo %%D
)

/i大文字と小文字に関係なく一致します。を削除し/iて、検索で大文字と小文字を区別しないようにします。

于 2013-01-10T16:23:29.907 に答える
4

最も簡単な方法はおそらく

for /r /d %%D in ("*") do (
    if not "%%~nxD"=="pdf" (
    echo %%D
    )
)
于 2013-01-10T16:16:19.563 に答える