Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 写入.bat文件以在ASCII文件中查找文件名并将其设置为变量_Batch File - Fatal编程技术网

Batch file 写入.bat文件以在ASCII文件中查找文件名并将其设置为变量

Batch file 写入.bat文件以在ASCII文件中查找文件名并将其设置为变量,batch-file,Batch File,我想从ascii文件的一行中提取文件名。在examplefile.txt文件的一行中,我有以下文本: Inputfile input_file.txt Outputfile output_file.txt 我要做的是打开examplefile.txt,读取输入和输出文件的名称,并将它们设置为变量。等效于以下行: Set "INPUTFILE=input_file.txt" Set "OUTPUTFILE=output_file.txt" 我尝试过类似的方法,但不起作用: for /f "t

我想从ascii文件的一行中提取文件名。在examplefile.txt文件的一行中,我有以下文本:

Inputfile  input_file.txt
Outputfile output_file.txt
我要做的是打开examplefile.txt,读取输入和输出文件的名称,并将它们设置为变量。等效于以下行:

Set "INPUTFILE=input_file.txt"
Set "OUTPUTFILE=output_file.txt"
我尝试过类似的方法,但不起作用:

for /f "tokens=1*" %%A in (examplefile.txt) do (
set "TEMP=%%A"
if %TEMP% = "Inputfile" goto :break
)
:break

您的方法看起来不错,直到/f的
,但我可能会使用

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

在此之后,您应该有两个变量
%inputfile%
%outputfile%

如果使用FINDSTR过滤掉不需要的行,则可以提高性能

for /f "tokens=1*" %%A in ('findstr /r /c:"^Inputfile " /c:"^Outputfile " "examplefile.txt"') do set "%%A=%%B"

假设文件包含的行数超过这两行。这个问题有点模糊(遗憾的是,大多数关于潜在重要先决条件的问题也是如此)。