我有 10 个文件,如下所示:
file1.txt
(文件内容 = “i 包含文件 1 的文本”)file2.txt
(文件内容 = “i 包含文件 2 的文本”)file3.txt
(文件内容 = “i 包含文件 3 的文本”)
所以
我正在尝试执行TYPE
如下命令:
type file*.txt > OUTPUT.txt
这仅适用于输出文件内容。我还需要输出每个文件的文件名。
我的output.txt
文件看起来应该是这样的:
file1.txt = "i contain text for file1"
file2.txt = "i contain text for file2"
file3.txt = "i contain text for file3"
答案1
创建一个名为 proc.bat 的批处理文件,其中包含:
echo %1=>>output.txt
type %1>>output.txt
然后使用此命令:
for %v in (file*.txt) do proc %v
答案2
cmd
从窗口中使用下一个命令:
>output.txt (for /F "tokens=1* delims=:" %G in ('findstr "^" "file*.txt"') do @echo %G = "%H")
如果在批处理脚本中使用,for
循环内变量中需有双百分号(即%%G
,%%H
而不是%G
)%H
:
@echo off
>output.txt (for /F "tokens=1* delims=:" %%G in ('findstr "^" "file*.txt"') do echo %%G = "%%H")
资源(必读):
- (命令参考)Windows CMD 命令行的 AZ 索引
- (其他细节)Windows CMD Shell 命令行语法
- (
%G
等专题页面)命令行参数(参数) - (
>
特别页面)重定向
答案3
你可以试试:
for /l %f in (1,1,3) do echo|set /p="File %f = " >> output.txt & type file%f.txt >> output.txt
这将生成如下文件:
File 1 = Text in file1
File 2 = Text in file2
File 3 = Text in file3
该for /l
命令以增量从 1 计数到 3。一般来说(start,increment,end)
。