关于批处理文件if语句的问题

新手写BAT时遇到了以下的问题:

@echo OFF
title update1
set clientDIR=client\
set serverDIR=server\
pause
if exist %clientDIR%1.txt (
echo 已找到客户端目录。
set clientExist=1
)
pause
if exist %serverDIR%1.txt (
echo 已找到服务器端目录。
set serverExist=1
)
pause

if %clientExist%==1 (
echo update_client
)
pause

if %serverExist%==1 (
echo update_server
)
pause
exit
以上程序在存在client和server文件夹时能够找到并执行if内的echo语句,但当我删除任一文件夹后却提示“此时不应有(”,经调试应该是在判断%clientExist%==1的时候发生的错误。望高人纠错!

第1个回答  2014-08-22
删除文件夹后,你的变量就是空的
那么你的最终if那就变成
if ==1 (
这样的结果,所以报错
请给变量添加双引号,如下:
if "%clientExit%"=="1"
那个serverExit那也一样。
第2个回答  2014-08-22
IF后双等号两边,请用双引号引起来:本回答被提问者采纳
相似回答