我想创建一个执行以下操作的脚本: 对于路径中的每个目录;检查目录的名称是否为“profiles”,如果不是,则运行程序。
这是我到目前为止所做的:
@ECHO OFF
setlocal enabledelayedexpansion
for /d %%i in ("\\server\c$\path\*") do (
set filename=%%~NXi
IF !filename!=="profiles"(
) ELSE (
mycommand.exe
)
)
此代码只返回“无效的命令语法”错误。
答案 0 :(得分:1)
在打开括号前需要空格,如果条件(在这种情况下我设置了REM),你需要设置一个命令:
@ECHO OFF
setlocal enabledelayedexpansion
for /d %%i in ("\\server\c$\path\*") do (
set filename=%%~NXi
IF "!filename!"=="profiles" (
rem :: see the space before the bracket above
) ELSE (
mycommand.exe
)
)
答案 1 :(得分:1)
我认为你最初的意图是,只有当foldername不是" profiles"时才想运行命令。那是空的IF子句进入的地方以及你对ELSE的使用。与此相比:
setlocal enabledelayedexpansion
for /d %%i in ("\\server\c$\path\*") do (
set filename=%%~nxi
IF /I NOT "!filename!"=="profiles" (
mycommand.exe
)
)
虽然我们正在努力,但我已经添加了' / I'选项使比较案例无关。