批处理 for循环时 变量包含括号 50

如下,在变量没有(x86)时是正常的。如果有这个(x86)就不行了。请大神帮助。解决追分。@echooffechoRanametoolsetlocalenabledela... 如下,在变量没有(x86)时是正常的。如果有这个(x86)就不行了。请大神帮助。解决追分。

@echo off
echo Raname tool
setlocal enabledelayedexpansion

set "olddir=9.c"
set olddirstorepath=E:\Program Files (x86)\test.c\
set newdirstorepath=E:\Program Files (x86)\test.c\test m
set olddirdir=1

echo ---------------------------------------修改存储目录。Ctrl+C结束脚本。
cd /D "%~dp0"

if "%olddirdir%"=="1" (
echo 此域名的目录将被修改为%olddirstorepath%\%olddir%-mstore
pause
dir /A:D /b "%olddirstorepath%" >%tempdir%\tmpdir.txt
mkdir "%olddirstorepath%\%olddir%-mstore"
for /f %%i IN (%tempdir%\tmpdir.txt) do (

set "mdir=%%i"
echo "!mdir!" |findstr /C:@ >nul
set "bool=!errorlevel!"
if !bool!==1 (
echo "%newdirstorepath%"|findstr /C:"%olddirstorepath%\!mdir!" >nul
set bool1=!errorlevel!
if not !bool1!==0 (
echo ...移动!mdir!...
MOVE "%olddirstorepath%\"!mdir! "%olddirstorepath%\%olddir%-mstore\"!mdir!
)
)
)
)
已经找到问题点。程序中所有包含的变量在使用时都要有双引号引起来。我这个错误就在echo后面没有使用。本身的for循环是正确的。因为已经在引号内。
展开
 我来答
小7890
2015-08-09 · TA获得超过359个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:13.2万
展开全部
不用括起来,把(换成^(,)换成^)就可以了,用set替换一下变量就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
依梦琴瑶
高粉答主

2015-08-05 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
要么变量值加上双引号,要么变量名加上双引号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fly2084
高能答主

2015-08-06 · 有什么不懂的尽管问我
知道大有可为答主
回答量:4.1万
采纳率:83%
帮助的人:6480万
展开全部
解决了?
不错不错~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式