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 CMD通过读取文件以用于输入_Batch File_For Loop_Cmd - Fatal编程技术网

Batch file CMD通过读取文件以用于输入

Batch file CMD通过读取文件以用于输入,batch-file,for-loop,cmd,Batch File,For Loop,Cmd,我有一个非常简单的批处理脚本,可以读取txt文件和echo的内容。剧本是: @echo off set WORK_BASE_DIR=%~dp0 set BUILD_TXT=%WORK_BASE_DIR%Build.txt echo %BUILD_TXT% set PRODUCT_BUILD=0.0 for /F %%i in ("%BUILD_TXT%") do set PRODUCT_BUILD=%%i echo %PRODUCT_BUILD% D:\Test Dir\Project1\

我有一个非常简单的批处理脚本,可以读取txt文件和echo的内容。剧本是:

@echo off
set WORK_BASE_DIR=%~dp0
set BUILD_TXT=%WORK_BASE_DIR%Build.txt
echo %BUILD_TXT%

set PRODUCT_BUILD=0.0

for /F %%i in ("%BUILD_TXT%") do set PRODUCT_BUILD=%%i
echo %PRODUCT_BUILD%
D:\Test Dir\Project1\Build.txt    \\Correct
D:\Test                           \\Incorrect
此脚本的输出为:

@echo off
set WORK_BASE_DIR=%~dp0
set BUILD_TXT=%WORK_BASE_DIR%Build.txt
echo %BUILD_TXT%

set PRODUCT_BUILD=0.0

for /F %%i in ("%BUILD_TXT%") do set PRODUCT_BUILD=%%i
echo %PRODUCT_BUILD%
D:\Test Dir\Project1\Build.txt    \\Correct
D:\Test                           \\Incorrect
如您所见,
PRODUCT\u BUILD
设置为文件的路径,而不是文件的内容。build.txt文件位于同一目录中,它只包含一行:
1.0.0000

如果我从
for
语句中删除
,它会说
build.txt
文件未找到,这是因为文件路径包含空格

是否缺少任何内容?

根据(在命令提示窗口中键入/?)的帮助,引号表示文字字符串,除非指定
usebackq
选项:

对于(“%BUILD\u TXT%”中的/F“usebackq”%%i,请设置“PRODUCT\u BUILD=%%i”
此外,我建议使用如上所示的quoted
set
语法,这样可以避免特殊字符的问题,并防止不可见的意外尾随空格成为赋值的一部分。请注意,这仅在启用的情况下有效,但无论如何,这是每个现代Windows版本(基于Windows NT)的默认设置