在批次中我有一个
for /d /r %%a in (*) do
如果%% a包含"我想做一个动作 - " (即空格+连字符+空格)和另一个动作,如果它不包含该字符串。
我不能让它发挥作用!你有什么主意吗?谢谢。
[PS:我的问题与此问题类似:Batch file: Find if substring is in string (not in a file)但我无法对其进行调整以使其正常工作!]
答案 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