变量中的特殊字符

时间:2013-07-01 16:36:59

标签: variables batch-file character

我搜索了一种传递字符串中的特殊字符的方法,但找不到任何相关内容。目前,字符串在第一个特殊字符处连接。

for /D /R "%cd%" %%d IN (*) do (call :Write_File "%%~nd")

可以使用转义字符,还是需要for循环替换特殊字符,而另一个替换它们?

该变量应该返回文件夹名称。它返回全长字符串,除非它包含特殊字符%,&,,,,等。 此时它将返回所有内容直至该点。示例B& B返回B,其中我要求它返回B& B。

有三个名为“%$”,“01,复制”和03&

的示例文件夹

在读取变量时回显变量(&& echo“%% ~nd”):“$%”,“01,复制”并错过第三个 重命名变量:Write_File(设置“FOLDER =%~1”):“$”,“01,复制”

编辑以澄清:

特殊字符:%,$,&,*,〜等等

使用:回显文件夹名称时 有时它会错过特殊字符,有时会完全跳过文件夹。

1 个答案:

答案 0 :(得分:1)

您不能在此处使用CALL值,而是使用对变量的引用。

for /D /R %%d IN (*) do (
  set "myDir=%%~nd"
  call :Write_File myDir
)
exit /b

:Write_File
setlocal EnableDelayedExpansion
set "param1=!%1!"
echo !param1!
endlocal
exit /b