我不确定出了什么问题。我一直在努力遵循我从其他人那里找到的代码示例,这些代码示例正在询问我正在尝试做什么的问题,甚至已经遵循了答案所说的内容,并且无法弄清楚我是什么做错了。
SET mypath=%~dp0
SET mypath=%mypath:~0,-1%
echo Selected Text file = %mypath%
SET STRING=%mypath%
echo %STRING%
pause
FOR /f "tokens=3* delimiters=\" %%i in ("%STRING%") do (
SET VAR= %%i
echo %%i
echo %VAR%
)
pause
我得到的错误是分隔符= \“此时出乎意料。
答案 0 :(得分:1)
批处理脚本语言并不完全是莎士比亚的语言
FOR /f "tokens=3* delims=\" %%i in ("%STRING%") do (
正如Dennis van Gils在评论中提到的那样,你需要delayed expansion:
setlocal enableDelayedExpansion
SET mypath=%~dp0
SET mypath=%mypath:~0,-1%
echo Selected Text file = %mypath%
SET STRING=%mypath%
echo %STRING%
pause
FOR /f "tokens=3* delims=\" %%i in ("%STRING%") do (
SET VAR=%%i
echo %%i
echo !VAR!
)
pause