0

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

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

这运行得很好,例如“test.bat 这是一个测试”,但是当使用特殊字符时它不起作用。所以“test.bat test & go”只创建文件夹“c:\testfolder\test”。如何转义所有特殊字符?

我尝试使用 test.bat “this a & test”,但是当我回显时!var!然后它与双引号相呼应,我不希望那样。

4

1 回答 1

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

应该可以工作(不需要 ENABLEDELAYEDEXPANSION)

它也适用于制作多个目录

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

创造test & go nospecialoranges & lemons

现在你必须在批量 lynch mob 让你创建愚蠢的目录名称之前离开城镇......


修改新要求。

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

&通过替换^&,转义&

于 2013-04-17T09:52:23.520 回答