查找“ - ”是否在目录名称中(批处理)

时间:2013-03-28 18:03:58

标签: windows for-loop batch-file

在批次中我有一个

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

如果%% a包含"我想做一个动作 - " (即空格+连字符+空格)和另一个动作,如果它不包含该字符串。

我不能让它发挥作用!你有什么主意吗?谢谢。

[PS:我的问题与此问题类似:Batch file: Find if substring is in string (not in a file)但我无法对其进行调整以使其正常工作!]

2 个答案:

答案 0 :(得分:1)

请试试这个:

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

它应该有用。

修改:for /d /r循环只查找名称中包含“-”的文件夹,因此对路径的其他测试不是'必要的。

答案 1 :(得分: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用于在“leaf”目录中找到“-”,因此只有当最低级别包含“-”时才会执行第二个操作,否则执行操作1.

如果您需要,以便在文件路径中发生“-”任何地方进行操作2,请将%%~nxa更改为%%a