我需要将文件的内容放入单个值中,并将文件的名称放在其中。我可以一个接一个地做,但是在循环通过子文件夹中的文件时我很难做到这一点。这是我的样本。
我在子文件夹中有一个文件,我需要循环遍历所有文件并获取每个内容。这是我的示例文件
D:\Projects\Fruits.txt
D:\Projects\Vegetables.txt
Fruits.txt里面有一个文本内容
Apple
is
good
我有一个代码来获取每个文件的内容。这是
@echo off
setlocal enableextensions enabledelayedexpansion
set "var="
for /f "usebackq delims=" %%a in (.\Projects\Fruits.txt) do set "var=!var!%%a "
echo("%var%"
这将返回
Apple is good
现在我需要为所有文件执行此操作,因为它们在每个循环中存储其内容和文件名。像这样的东西
For loop code here (
set FileName = ??
set FileContent = ??
echo %FileName% content is %FileContent%
)
所以在我的例子中,每个循环都应该像这样回应
Fruits content is Apple is good
Vegetable content is Eat vegetables
我在循环方面遇到了麻烦。如果你能指出我正确的方向,我将非常感谢谢谢!
答案 0 :(得分:0)
这应该有所帮助:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%A in ('dir /b *.txt') do (
set "fileContent="
for /f "delims=" %%B in ('type "%%~A"') do (
set "fileContent=!fileContent! %%~B"
)
set "fileContent=!fileContent:~1!"
echo %%~A content is !fileContent!
)
pause
答案 1 :(得分:0)
它只是将一个循环嵌套在另一个循环中,如下所示:
@Echo Off
SetLocal EnableDelayedExpansion
For %%A In (*.txt) Do (Set "var="
For /F "UseBackQ Delims=" %%B In ("%%A") Do Set "var=!var! %%B"
Echo %%A content is !var:~1!)
Pause
我认为无需为FileName
和FileContent