测试变量设置一批价值
我有什么是文本文档充满变数的设置和测试名为test.txt的测试变量设置一批价值
ab <-example variable
,并从列表中翻出一个批处理程序
for /f %%a in ('type test.txt') do set %%a=0
for /f %%a in ('type test.txt') do echo %%%a%
预期输出
0
实际输出
%ab%
这是一个非常精简的例子,但也就是打字
在命令行但单独剂量没有和
for /f %%a in ('type test.txt') do echo !%%a!
只是输出
我已经试过了问题!ab!
你有一个错误:
setlocal enabledelayedexpantion
^Here!
它应该是:
编辑:例会话添加
C:\ type test.txt
ab
C:\ type test.bat
@echo off
setlocal enabledelayedexpansion
for /f %%a in ('type test.txt') do set %%a=0
for /f %%a in ('type test.txt') do echo !%%a!
C:\ test
0
良好的捕获,但问题仍然存在 – 2014-12-03 03:27:30
你测试了它吗?看到我的编辑... – Aacini 2014-12-03 17:45:06
我看到我错过了,结果延迟扩展只能在批处理文件中起作用。我只是将它输入到cmd并获得了错误的否定 – 2014-12-04 04:35:00
@ECHO OFF
SETLOCAL
for /f %%a in ('type q27262112.txt') do set %%a=0
for /f %%a in ('type q27262112.txt') do echo %%%a%
for /f %%a in ('type q27262112.txt') do CALL echo %%%%a%%
SETLOCAL ENABLEDELAYEDEXPANSION
for /f %%a in ('type q27262112.txt') do set %%a=w
for /f %%a in ('type q27262112.txt') do echo !%%a!
GOTO :EOF
我用了一个包含数据名为q27262112.txt
文件我测试。
这产生了以下的输出:
%
0
w
这不同于你的结果,但演示如何检索变量ab
的价值。
我在delayedexpansion
实例中故意将ab
的值设置为some-value-other-than-0以表明检索的值确实在设置,而不是宿醉。
您的修改解决了问题!我建议你回滚这个修改;否则,你的问题现在是废话,因为它不会失败... – Aacini 2014-12-03 17:49:08
,但它并没有解决批量测试它的问题,而不是解决了问题,这是一个环境问题 – 2014-12-05 17:26:32
Err ...唯一的问题在这个问题_as你发布it_是'setlocal enabledelayedexpanTion'中的错字,因为[我的答案](http://*.com/questions/27262112/testing-variables-from-a-text-list-to-set价值在批/ 27262738#27262738)证明。虽然'setlocal'命令在命令行中不起作用(如'setlocal /?'所示),您在您的问题中没有提到这一点。如果你愿意,你可以发布一个关于这一点的新问题... – Aacini 2014-12-05 18:33:07