首页 > 解决方案 > 在所有子目录中显示多个具有相同文件名的 .txt 文件的内容

问题描述

我在各个子目录下有多个具有相同文件名的文件,例如:

c:\kjhsd\client.txt
c:\ekjjs\client.txt
c:\oiwnk\client.txt

我不知道上面随机字母表示的路径中间部分,但文件名总是一致的。

我需要一种使用此命令的方法:(type client.txt或)more client.txt但要同时显示任何目录下文件名为“client.txt”的所有文本文件的内容。

因此,如果:

c:\kjhsd\client.txt包含:hello

c:\ekjjs\client.txt包含:helloworld

c:\oiwnk\client.txt包含:helloagain

运行单个命令后,我会看到:

hello
helloworld
helloagain

提前致谢 :)

标签: windowsbatch-filecmd

解决方案


来自cmd.exe

@for /r c:\ %a in ("client.txt") do @type "%~a"2>nul

从一个Batch-File

@for /r c:\ %%a in ("client.txt") do @type "%%~a"2>nul

编辑:根据换行要求:

@echo off
Pushd "c:\somedir"
for /f %%a in ('dir /b /s /a-d ^| find /i "client.txt"') do (
    type "%%~a"2>nul
    echo(
)
Popd

或者如果您想查看哪个文件有什么文本:

@echo off
Pushd "c:\somedir"
for /f %%a in ('dir /b /s /a-d ^| find /i "client.txt"') do (
    echo content: "%%~a"
    type "%%~a"2>nul
    echo(
)
Popd

推荐阅读