美好的一天,我仍然是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
有关我将如何做的任何提示?
感谢。
答案 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 /?
。