首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果存在的话!在批处理文件中不工作

如果存在的话!在批处理文件中不工作
EN

Server Fault用户
提问于 2014-06-11 02:34:48
回答 1查看 721关注 0票数 1

我有一个批处理脚本,在其中我使用多个if exist语句,问题是除了一个语句之外,所有语句都在工作。

设置了以下变量

代码语言:javascript
运行
复制
SETLOCAL ENABLEDELAYEDEXPANSION
SET basedrive=E:
SET tfworkspace=!basedrive!\TFS
SET envdefault=%1
SET projenv=!envdefault!
echo subapp=!subapp! subappservice=!subappservice! 
SET tfworkspacepath=!tfworkspace!\!releasebranch!\!app!\!subapp!

这句话很管用,

代码语言:javascript
运行
复制
if exist "!tfworkspacepath!" (robocopy "!tfworkspacepath!"\sourcecode\messagebroker\ /E /NFL /NJS /NDL /ETA  "!basedir!\!messagebroker!" )  else SET /a foldererror=1
SET tfworkspacepathservice=!tfworkspace!\!releasebranch!\!app!\!subapp!\sourcecode\build\!projenv!

这句话行不通,我的意思是,即使你的道路不存在,它仍然试图复制机器人。

代码语言:javascript
运行
复制
if exist !tfworkspacepathservice! (
  robocopy !tfworkspacepathservice! /E /NFL /NJS /NDL /ETA  "!basedir!\!scripts!") else  SET /a foldererror =!foldererror!+1

我是批次写作新手,请指导我。

EN

回答 1

Server Fault用户

发布于 2014-06-12 10:54:05

首先,我要向所有前来帮忙的人道歉。

出什么事了?

我有一个if语句,它验证子subappservice变量是否为空,从语法上讲,它是imperfect.see,下面是糟糕的语法。

代码语言:javascript
运行
复制
if NOT !subappservice!=="" (SET scripts=!scripts!\!subapp!) else SET projenv=!projenv!\!subappservice!& SET scripts=!scripts!\!subapp!\!subappservice!

我把它更正到下面来解决这个问题。

代码语言:javascript
运行
复制
if [!subappservice!]== []  (SET scripts=!scripts!\!subapp!) else SET projenv=!projenv!\!subappservice!& SET scripts=!scripts!\!subapp!\!subappservice!

即使你的语法不好或不完美,CMD.exe也不会发出任何警告,我一直在验证我的脚本,直到偶然发现为止。我把它放在这里是为了让别人从我的错误中受益:)

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/604239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档