Windows 将文本文件内容读入批处理变量
我有以下文件: y:\a.txt y:\b.txt 我有x.bat: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
@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