从文本文件中回显.bat文件中的变量

时间:2016-03-17 11:42:45

标签: windows variables batch-file command-line

美好的一天,我仍然是DOS命令的新手,我想,如果仍然可能。我有一个.bat,我想从文本文件中调用一个值。我的意思是我正在做一个.bat文件(通用),普通用户只需更改文本文件中的值即可使用该文件。

示例:

我在我的bat文件中有这个命令:(这只是一个例子)

@ECHO OFF 
echo First Name:
echo Kobe
echo LastName:
echo Bryant
pause

而不是编辑.bat文件或在.bat文件上设置变量。我想创建一个包含变量的set.txt

示例:

set.txt

FirstName=Kobe
LastName=Bryant

因此.bat文件将是通用的/灵活的。无需改变。

的run.bat

echo First Name:
echo $FirstName
echo Last Name:
echo $LastName

有关我将如何做的任何提示?

感谢。

3 个答案:

答案 0 :(得分:5)

以下代码会使输出完全动态,以防您甚至不知道变量的名称。

@echo off
setlocal disableDelayedExpansion

for /f "delims== tokens=1*" %%A in (set.txt) do (
  set "%%A=%%B"
  echo %%A:
  echo %%B
)

如果您的文件名包含空格或有毒字符,例如&^,那么您需要引用文件名,在这种情况下,您需要添加usebackq选项。

for /f "usebackq delims== tokens=1*" %%A in ("name with space.txt") do ...

答案 1 :(得分:2)

请确保在set.txt中=符号周围没有空格:

@echo off
for /f "usebackq tokens=* delims=" %%# in ("set.txt") do (
  set "%%#"
)
echo First Name:
echo %FirstName%
echo Last name:
echo %LastName%

答案 2 :(得分:1)

For /f "tokens=1,2 delims==" %%A in (file.txt) do Echo %A %B

是怎么回事。请参阅for /?