是否可以批量转义冒号?
问题描述:
我是一个先进的ish批处理程序员,并且知道转义字符。但是,经过几个小时的搜索后,我找不到答案。这里是我的代码片段:是否可以批量转义冒号?
for /l %%a in (1,1,%a%) do (
set /a e=%%a*100/%a%
cls
echo %date%%time% Creating %a%x%b% matrix using %c%...
echo !e!%% complete.
for /l %%b in (1,1,%b%) do set /a a%%a%%b=%%a%c%%%b
)
这工作正常,但下一个片段给了我一个“:在这个时候是意外的。”。错误。
for /l %%a in (1,1,%a%) do (
set /a e=%%a*100/%a%
cls
echo %date%%time% Storing %a%x%b% matrix using %c% to %d%
echo !e!%% complete.
for /l %%b in (1,1,%b%) do echo Cell (%%a,%%b): !a%%a%%b!>>%d%
)
请帮忙。我不知道如何让冒号工作。
答
for /l %%b in (1,1,%b%) do echo Cell ^(%%a,%%b^): !a%%a%%b!>>%d%
应该给你想要的结果。
有趣的是,它不是需要转义的冒号,而是括号。这是因为批次在外部for循环内部看到)
,并认为这是循环的结尾。
正确,但左括号的转义没有必要,但仍然无害 – jeb 2014-11-01 09:32:02