逃脱&登录批处理命令行参数

时间:2013-04-17 09:08:35

标签: batch-file

我使用这个批处理文件test.bat:

setlocal EnableDelayedExpansion
set var=%*
md "c:\testfolder\!var!"

这样运行就好了“test.bat这是一个测试”,但是当使用特殊字符时它不起作用。所以“test.bat test& go”只创建文件夹“c:\ testfolder \ test”。如何逃脱所有特殊角色?

我尝试使用test.bat“这个& test”,但当我回声!var!那么它与双引号相呼应,我不希望这样。

1 个答案:

答案 0 :(得分:0)

FOR %%d IN (%*) DO md "u:\testfolder\%%~d"

应该有效(不需要ENABLEDELAYEDEXPANSION)

它也可以制作多个目录

yourbatch "test & go" nospecial "oranges & lemons"

创建test & go nospecialoranges & lemons

现在你必须离开小镇才能让批处理的暴徒让你创建愚蠢的目录名......

<小时/> 新要求的修正案。

@ECHO OFF
SETLOCAL
FOR %%d IN (%*) DO SET "var=%%~d"
SET var
ECHO =========
ECHO %var:&=^&%
ECHO ++++++++++
SET "var=%var:&=^&%"
ECHO %var%

通过&替换^&,逃离&