我使用这个批处理文件test.bat:
setlocal EnableDelayedExpansion
set var=%*
md "c:\testfolder\!var!"
这样运行就好了“test.bat这是一个测试”,但是当使用特殊字符时它不起作用。所以“test.bat test& go”只创建文件夹“c:\ testfolder \ test”。如何逃脱所有特殊角色?
我尝试使用test.bat“这个& test”,但当我回声!var!那么它与双引号相呼应,我不希望这样。
答案 0 :(得分:0)
FOR %%d IN (%*) DO md "u:\testfolder\%%~d"
应该有效(不需要ENABLEDELAYEDEXPANSION)
它也可以制作多个目录
yourbatch "test & go" nospecial "oranges & lemons"
创建test & go
nospecial
和oranges & lemons
现在你必须离开小镇才能让批处理的暴徒让你创建愚蠢的目录名......
<小时/> 新要求的修正案。
@ECHO OFF
SETLOCAL
FOR %%d IN (%*) DO SET "var=%%~d"
SET var
ECHO =========
ECHO %var:&=^&%
ECHO ++++++++++
SET "var=%var:&=^&%"
ECHO %var%
通过&
替换^&
,逃离&