Windows 使用批处理文件从文件中读取文本时出现问题

Windows 使用批处理文件从文件中读取文本时出现问题,windows,file,batch-file,Windows,File,Batch File,我正在尝试编写一个批处理文件,它将从文本文件中读取文本并设置为变量 这是文本文件 FOR /f "delims=/" %%a IN (out.txt) DO echo %%a 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.

我正在尝试编写一个批处理文件,它将从文本文件中读取文本并设置为变量

这是文本文件

FOR /f "delims=/" %%a IN (out.txt) DO echo %%a
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:\ProgramFiles(x86)\Windows NT设置为一个变量。我尝试使用以下命令保存完整的文本文件

FOR /f "delims=/" %%a IN (out.txt) DO echo %%a
谁能告诉我如何从文本文件中读取特定字符串

FOR /f "delims=/" %%a IN (out.txt) DO echo %%a

提前感谢。

如果我理解正确,您希望获取
out.txt
中提到的文件的完整路径,但不包含文件名。这可以通过如下方式实现:

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%

使用反斜杠作为分隔符拆分行

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
变量将只保存从文件最后一行检索到的值。

我不明白您试图实现什么。是否要获取out.txt中指定的每个文件的目录?如果您向我们展示预期的结果,可能会有所帮助。我想将C:\Program Files(x86)\Windows NT\存储在变量中。我想把第一行C:\Program Files(x86)\Windows NT\保存在一个变量中。我该如何保存?@Honey:在以后的帖子中,你应该在原始问题中包含所有重要的细节,而不是在收到的答案中用注释来完成它(比如“我想保留第一行”这一点);否则,每个回答都会回答不同的问题!如果有必要添加一些信息,您可以在更改前用一个非常清晰的编辑标记编辑问题,并在回答中留下评论:“查看我问题中的编辑”感谢您纠正我,在以后的帖子中会记住所有这些。