Windows 查找“如果”&引用;在目录名中(批处理)
我有一批货Windows 查找“如果”&引用;在目录名中(批处理),windows,for-loop,batch-file,Windows,For Loop,Batch File,我有一批货 for /d /r %%a in (*) do 如果%%a包含“-”(即空格+连字符+空格),我想执行一个操作;如果%%a不包含此字符串,我想执行另一个操作 我不能让它工作!你知道吗?谢谢 [注:我的问题与此类似:但我无法调整它使其工作!]请尝试以下方法: for /d /r %%a in ("* - *") do 它应该会起作用 编辑:for/d/r循环只会在名称中找到带有“-”的文件夹,因此不需要对路径进行额外的测试 @ECHO OFF SETLOCAL FOR /d /
for /d /r %%a in (*) do
如果%%a包含“-”(即空格+连字符+空格),我想执行一个操作;如果%%a不包含此字符串,我想执行另一个操作
我不能让它工作!你知道吗?谢谢
[注:我的问题与此类似:但我无法调整它使其工作!]请尝试以下方法:
for /d /r %%a in ("* - *") do
它应该会起作用
编辑:for/d/r
循环只会在名称中找到带有“-
”的文件夹,因此不需要对路径进行额外的测试
@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")
)
“查找”用于在“叶”目录中定位“-
”,因此只有在最低级别包含“-
”时,才会执行操作2,否则执行操作1
如果您想让文件路径中任何位置出现的“
-
”使操作2发生,请将%%~nxa
更改为%%a
,谢谢!如何对不包含“-”的文件夹进行第二次循环?请尝试(从根目录中):for/f“delims=“%%i in('dir/ad/s/b“myfolder12”)do set“folder=%%i”
echo%folder%
这有点棘手,例如:@echo off&setlocal
设置“fname=bla bla-biz baz”
设置“right=%fname:=”
呼叫集“left=%%fname:-%right%=%%”
回音[%left%]*[%right%]
对不起,我的时间到了,这里是午夜……)在代码块内部,例如afor
循环,您需要另一种语法:@echo off&setlocal´
for/d%%a in()do(`set“fname=%%~a”`call set“right=%%%fname:-=%%”`call set“left=%%%fname:-%right%=%%'`call echo[%%%left%%]*[%right%%]'''),如何将“-”之前的部分(例如%%b)和“-”之后的部分分别设置为%%c?