【发布时间】:2016-12-29 21:55:23
【问题描述】:
我正在尝试从包含冒号和感叹号的文件中读取一行。当我回显该行时,它仅显示冒号之后的所有内容。我需要为我将在 do 循环中执行的更高级的代码保留 enabledelayedexpansion。但现在我只想正确地回声。 任何帮助将不胜感激!
文件会这样说:
! 12345 APX: 6.32
我试过的代码是:
setlocal EnableDelayedExpansion
cd C:\Users\jwagh\Desktop\
for /f "usebackq delims=" %%a in (test.txt) DO (
setlocal DisableDelayedExpansion
echo %%a
set line=%%a
set example=%line:~0,-1%
echo %example%
)
【问题讨论】:
-
%%a扩容过程中禁用延迟扩容,真正需要时才开启... -
我尝试在 do-loop 中重新启用它,但它不起作用。
-
“它不起作用”不是一个非常精确的描述,是吗?也许您应该发布更多代码,这样可能更容易为您提供帮助。一般来说,你需要考虑
setlocal/endlocal的环境本地化,并且你需要知道这样的块的嵌套级别是有限的,因此当你有一个@987654326时你需要一个endlocal在循环中@那里... -
那是因为您需要在您的
DO中DISabledelayedexpansion。 -
不要使用评论中提供的建议来编辑您的问题。您最近的编辑不再给出您在文本中描述的症状。
标签: batch-file colon