1

バッチで私は持っています

for /d /r %%a in (*) do 

%%a に " - " (つまり、空白 + ハイフン + 空白) が含まれている場合はアクションを実行し、この文字列が含まれていない場合は別のアクションを実行したいと考えています。

私はそれを機能させることはできません!何か考えはありますか?ありがとう。

[PS : 私の質問は次のようなものです:バッチ ファイル: 部分文字列が文字列内 (ファイル内ではない) にあるかどうかを確認します が、それを機能させるために適応させることはできません!]

4

2 に答える 2

1
@ECHO OFF
SETLOCAL
FOR /d /r %%a IN (*) DO (
 ECHO "%%~nxa"|FIND " - " >NUL
 IF ERRORLEVEL 1 (ECHO DO action ONE ON "%%a"
 ) ELSE (ECHO action TWO gets done ON "%%a")
)

-FIND は「葉」ディレクトリで「 」を見つけるために使用されるため、最下位レベルに「 -」が含まれている場合にのみアクション 2 が実行され、それ以外の場合はアクション 1 が実行されます。

-ファイルパスのどこかに発生する " " がアクション 2 を実行するようにしたい場合は、次のように変更%%~nxaします。%%a

于 2013-03-28T18:30:11.833 に答える
1

これを試してください:

for /d /r %%a in ("* - *") do 

それはうまくいくはずです。

編集:for /d /rループは名前-に " " が含まれるフォルダーのみを検索するため、パスの追加テストは必要ありません。

于 2013-03-28T18:11:54.847 に答える