Batch file 如何使用特殊字符在批处理文件中创建文件夹?
这将在Batch file 如何使用特殊字符在批处理文件中创建文件夹?,batch-file,cmd,Batch File,Cmd,这将在C:\Test\Test01\Test02\Test03\Test04\Test05\Test06\Final中创建 结果应该像C:\Test\Test01\Test02\Test03\Test04\!!Test05\Test06\Final 如何使用特殊字符(!!Test05)在批处理文件中创建文件夹?,因为windows处理!作为一个特殊的角色,你需要逃避它。^符号是转义字符,类似于: @echo off setlocal EnableDelayedExpansion set "fo
C:\Test\Test01\Test02\Test03\Test04\Test05\Test06\Final
中创建
结果应该像C:\Test\Test01\Test02\Test03\Test04\!!Test05\Test06\Final
如何使用特殊字符(
!!Test05
)在批处理文件中创建文件夹?,因为windows处理!作为一个特殊的角色,你需要逃避它。^符号是转义字符,类似于:
@echo off
setlocal EnableDelayedExpansion
set "folder=C:\Test\Test01\Test02\Test03\Test04\!!Test05\Test06"
md %folder%\Final
echo %folder%
pause
应该行得通。请看这里:启用时,在逐字说明或扩展普通%
-变量时,感叹号将丢失。切换延迟扩展并使用周围的读取受影响的变量代码>仅用于克服此问题:
@echo关闭
setlocal DisableDelayedExpansion
rem//已禁用延迟扩展,因此保留文字感叹号:
设置“folder=C:\Test\Test01\Test02\Test03\Test04\!!Test05\Test06”
setlocal EnableDelayedExpansion
rem/*延迟扩展已启用,因此不要使用“%”扩展变量,
rem,否则您将丢失感叹号:*/
md“!文件夹!\Final”
端部
rem/*延迟扩展被禁用,变量可以用“%”扩展,
rem不丢失感叹号:*/
回显“%folder%”
端部
如果删除未使用和不需要的第二行,则命令工作正常<强>在Windows中不是一个特殊字符,但在启用延迟扩展后,它会以一种特殊的方式进行解释
@Echo关闭
设置“folder=C:\Test\Test01\Test02\Test03\Test04\!!Test05\Test06”
MD“%folder%\Final”
Echo=%folder%
超时-1
默认情况下,“延迟扩展”处于关闭状态,但这可以更改。如果您需要确保您的如果代码>
显示正确,则最安全的选择是在特定代码部分之前添加行SetLocal DisableDelayedExpansion
。感谢您的帮助,抱歉,它仍然无法工作。我的意思是如果你运行这行代码,文件夹名应该是“!!Test05”@SandeepPrasad:md“C:\Test\Test01\Test02\Test03\Test04\^!^!Test05\Test06\Final”它对你有用吗?谢谢,但我需要存储在Veriable中我明白,我只是想知道它是否有效,大概是存储it部分导致了问题,因此,我们可以对此进行处理是的,它正在工作(md“C:\Test\Test01\Test02\Test03\Test04\^!Test05\Test06\Final”)
@echo off
setlocal EnableDelayedExpansion
set "folder=C:\Test\Test01\Test02\Test03\Test04\^!^!Test05\Test06"
md %folder%\Final
echo %folder%
pause