Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Windows 将文本文件内容读入批处理变量_Windows_Batch File - Fatal编程技术网

Windows 将文本文件内容读入批处理变量

Windows 将文本文件内容读入批处理变量,windows,batch-file,Windows,Batch File,我有以下文件: y:\a.txt y:\b.txt 我有x.bat: @echo off y: cd \ for /f %%f in ('dir /b y:\*.txt') do ( set content= set /p content=<y:\%%f echo y:\%%f echo content=%content% ) 为什么不包含%content%变量作为文本文件的第一个谎言?文件不是空的。按如下方式修改批处理脚本: @echo off se

我有以下文件: y:\a.txt y:\b.txt

我有x.bat:

@echo off  
y:  
cd \  
for /f %%f in ('dir /b y:\*.txt') do (  
set content=  
set /p content=<y:\%%f  
echo y:\%%f  
echo content=%content%  
)

为什么不包含%content%变量作为文本文件的第一个谎言?文件不是空的。

按如下方式修改批处理脚本:

@echo off  
setlocal enableDelayedExpansion
y:\
cd \
set content=
for /f %%f in ('dir /b *.txt') do (  
set /p content=<%%~dpff
echo file:%%~dpff , content:!content!
)

您需要延迟扩展才能在循环中使用一个可能与否重复的变量。如果我将setlocal enabledelayedexpansion放在开始位置,它将不起作用。Ruselt是一样的…你不知道如何使用延迟扩展。您还需要使用这一行来代替,因为!标记是如何利用延迟扩展:echo content=!所容纳之物要向某人发送消息,您必须在评论中的某个地方使用@foxidrive。你自动得到它们,但我不知道你已经回复了。它不起作用。系统找不到包含的文件!
@echo off  
setlocal enableDelayedExpansion
y:\
cd \
set content=
for /f %%f in ('dir /b *.txt') do (  
set /p content=<%%~dpff
echo file:%%~dpff , content:!content!
)
file:y:\a.txt , content:lorem file:y:\b.txt , content:ipsum file:y:\c.txt , content:Ocaml, Haskell