Answers:
FOR /r %%X IN (*) DO (ECHO %%X & DEL %%X)
&&
不是&
吗?
&&
如果第一个命令失败,@ jww 将失败,&
无论如何将执行第二个命令。
DO
paren。您可以通过^
在它们后面加上a 来逃避它们。
&
对于简短的命令,可以使用,但是单行可以很快很长。发生这种情况时,请切换到多行语法。
FOR /r %%X IN (*.txt) DO (
ECHO %%X
DEL %%X
)
安置(
和)
事项。之后的圆括号DO
必须放在同一行上,否则批处理文件将不正确。
有关if /?|find /V ""
详细信息,请参见。
DO
切勿将下划线后的圆括号放在下一行,否则会破坏批处理文件。在代码中,当我编写for循环时,通常将大括号放在{
下一行。
SilverSkin和Anders都是正确的。您可以使用括号来执行多个命令。但是,您必须确保命令本身(及其参数)不包含括号。cmd
贪婪地搜索第一个右括号,而不是优雅地处理嵌套的括号集。这可能导致命令行的其余部分无法解析,或者可能导致某些括号传递给命令(例如DEL myfile.txt)
)。
一种解决方法是将循环的主体拆分为一个单独的函数。请注意,您可能需要跳过函数主体,以免“掉进”函数主体。
FOR /r %%X IN (*.txt) DO CALL :loopbody %%X
REM Don't "fall through" to :loopbody.
GOTO :EOF
:loopbody
ECHO %1
DEL %1
GOTO :EOF
C:\Program Files (x86)
。
for %i in (1 2 3) do echo %i & echo foo
打印我期望的:“ 1”,“ foo”,“ 2”,“ foo”,“ 3”,“ foo”(在单独的行上)。