我试图编写一个批处理文件,该文件将从文本文件中读取文本并设置为变量。
这是文本文件。
out.txt
C:\Program Files (x86)\Windows NT\text1.txt
C:\Program Files (x86)\Windows NT\text2.txt
C:\Program Files (x86)\Windows NT\text3.txt
3 file(s) copied.
我怀疑的是,我想将 C:\ Program Files(x86)\ Windows NT 设置为变量。我尝试使用以下命令来保存完整的文本文件。
FOR /f "delims=/" %%a IN (out.txt) DO echo %%a
任何人都可以告诉我如何从文本文件中读取特定的字符串。
提前致谢。
答案 0 :(得分:2)
如果我理解正确,您希望获得out.txt
中提到的文件的完整路径,但没有文件名。这可以使用parameter extensions完成,如下所示:
FOR /f "delims=" %%a IN (out.txt) DO ECHO %%~dpa
在您的示例中,它将输出
C:\Program Files (x86)\Windows NT\
C:\Program Files (x86)\Windows NT\
C:\Program Files (x86)\Windows NT\
更新:要仅保存第一行的结果,请使用以下命令:
@ECHO OFF
FOR /f "delims=" %%a IN (out.txt) DO (
SET path_in_first_line=%%~dpa
GOTO skip
)
:skip
ECHO %path_in_first_line%
答案 1 :(得分:0)
使用反斜杠作为分隔符拆分行
for /f "tokens=1-3 delims=\" %%a in (out.txt) do set "var=%%a\%%b\%%c"
echo %var%
询问行中元素的驱动器和路径
for /f "delims=" %%a in (out.txt) do set "var=%%~dpa"
echo %var%
当然,当for
命令迭代文件中的所有行时,var
变量将只保存从文件中最后一行检索的值。