1

在一批中,我有一个

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

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

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

[PS:我的问题与此类似:批处理文件:查找子字符串是否在字符串中(不在文件中) ,但我无法对其进行调整以使其工作!]

4

2 回答 2

1

请试试这个:

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

它应该工作。

编辑:for /d /r循环只找到名称-中带有“ ”的文件夹,因此不需要对路径进行额外测试。

于 2013-03-28T18:11:54.847 回答
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。

如果您希望它-在文件路径中的任何地方出现“”使操作二发生,然后更改%%~nxa%%a

于 2013-03-28T18:30:11.833 回答