Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file CMD文件-延迟变量扩展_Batch File_Windows 7_Cmd - Fatal编程技术网

Batch file CMD文件-延迟变量扩展

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

我正在写一个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=”之前的字符数进行剥离,因为字符数会有所不同

我的剧本是:

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