Batch file CMD文件-延迟变量扩展
我正在写一个CMD/batch文件(在Win-7cmd.exe下运行),我似乎被延迟变量扩展挂起了 我使用的文本文件输入格式如下: 9.CN=ISRJX.OU=Linc.OU=thisco.O=UCOM.T=UCOM。8-20-13 10.CN=FXXLISHER.OU=Linc.OU=thisco.O=UCOM.T=UCOM。10-13-13 11.CN=QXX004F.OU=Linc.OU=thisco.O=UCOM.T=UCOM。10-14-13 12*.CN=QXX1001OB.OU=Linc.OU=thisco.O=UCOM.T=UCOM。10-15-13 作为“inputfile.txt”中的内容。目的是在此过程中提取“.CN=”之后的第一个单词 请注意,我不能根据“CN=”之前的字符数进行剥离,因为字符数会有所不同 我的剧本是:Batch file CMD文件-延迟变量扩展,batch-file,windows-7,cmd,Batch File,Windows 7,Cmd,我正在写一个CMD/batch文件(在Win-7cmd.exe下运行),我似乎被延迟变量扩展挂起了 我使用的文本文件输入格式如下: 9.CN=ISRJX.OU=Linc.OU=thisco.O=UCOM.T=UCOM。8-20-13 10.CN=FXXLISHER.OU=Linc.OU=thisco.O=UCOM.T=UCOM。10-13-13 11.CN=QXX004F.OU=Linc.OU=thisco.O=UCOM.T=UCOM。10-14-13 12*.CN=QXX1001OB.OU=L
setlocal enableextensions enableDelayedExpansion
REM @echo off
for /f "tokens=3 delims==." %%a in (inputfile.txt) do (
set "acct =%%a"
echo. %%a,%acct%
)
endlocal
我已经尝试了每一套报价组合,!,%等等,同时启用和禁用延迟扩展,仍然无法使其工作。在大多数情况下,当我使用时!我最终呼应了真实的声音!。i、 e.“echo!acct!”
将回显实际文本“!acct!”
我在这里和其他地方读过许多关于延迟变量展开的例子和答案。在这个示例中,我不知道如何解决这个问题,我希望“acct”在循环中展开
我怀疑这是一个简单的标点问题,但我没有主意了。当我运行此操作时,我看到acct设置为%%a的值,但当它回响时,显然它不会扩展为新值——相反,它将回响以前设置为的值,或为空
我还尝试了禁用延迟扩展
,这对我的结果没有影响(包括使用!acct!
而不是%acct%
)删除acct变量名称后的空格并使用!标志。
删除acct变量名称后的空格并使用!标志。
德拉特,我知道这是标点符号!我假定其效果是将变量命名为“acct”(名称中包含空格)。我以前尝试过“!acct!”,但由于变量名称中存在空格错误,它只是将“!acct!”作为文本回显。现在可以了。谢谢你改善了我头发的加速镀银。天哪,我知道这是标点符号!我假定其效果是将变量命名为“acct”(名称中包含空格)。我以前尝试过“!acct!”,但由于变量名称中存在空格错误,它只是将“!acct!”作为文本回显。现在可以了。谢谢你改善了我头发的加速镀银。
@echo off
setlocal EnableExtensions EnableDelayedExpansion
for /f "tokens=3 delims==." %%A in (inputfile.txt) do (
set "acct=%%A"
echo. %%A,!acct!
)
endlocal