使用 Windows cmd/Powershell 将目录和子目录中的所有文件内容保存到单个文件中
Save all files content from a directory and sub directory into a single file with Windows cmd/Powershell
所以,我有一个包含子文件夹的文件夹,其中包含不同类型的文件 (php,js,html)。我想知道 windows powershell/cmd 上是否有命令将我目录的所有文件内容保存到一个文件中。简而言之,我想在 windows 上做一个递归的 cat > save.txt。
提前谢谢你
来自命令提示符:
您可以使用带有 +
字符的复制命令来连接多个文件:
copy file1.txt + file2.txt save.txt
.
要连接目录中的所有文件,请结合使用 for 命令和 dir /b
(/b 表示裸格式,仅文件名)
for /f %f in ('dir *.* /b') do @type %f>>save.txt
或递归地,对目录和所有子目录使用 /s
并结合 /a:-d
以排除输出中的目录。
for /f %f in ('dir *.* /b /s /a:-d') do @type %f>>save.txt
使用 PowerShell:
连接文件列表:
Get-Content .\file1.txt,.\file2.txt | Out-File Save.txt
连接目录中的所有文件:
(Get-ChildItem -File | ForEach-Object { Get-Content $_ } ) | out-file save.txt
递归连接所有文件:
(Get-ChildItem -File -Recurse | ForEach-Object { Get-Content $_.FullName } ) | out-file save.txt
注意:对于二进制文件,您可能需要将 /b
开关添加到 copy
命令,或者如果使用 PowerShell,则将 -Raw
添加到 Get-Content
使用 Get-ChildItem
递归地发现文件夹层次结构中的任何文件,然后将这些文件通过管道传输到 Get-Content
(用于读取),最后将这些调用的输出通过管道传输到 Set-Content
(用于将整个东西写回磁盘)。
Get-ChildItem path\to\root\folder -Recurse -File |Get-Content |Set-Content path\to\save.txt
注意:与cat
不同,Get-Content
默认将文件读取为text/strings,因此这适用于text-encoded个文件(如js,php 和 html 源文件),但不适用于二进制文件
所以,我有一个包含子文件夹的文件夹,其中包含不同类型的文件 (php,js,html)。我想知道 windows powershell/cmd 上是否有命令将我目录的所有文件内容保存到一个文件中。简而言之,我想在 windows 上做一个递归的 cat > save.txt。 提前谢谢你
来自命令提示符:
您可以使用带有 +
字符的复制命令来连接多个文件:
copy file1.txt + file2.txt save.txt
.
要连接目录中的所有文件,请结合使用 for 命令和 dir /b
(/b 表示裸格式,仅文件名)
for /f %f in ('dir *.* /b') do @type %f>>save.txt
或递归地,对目录和所有子目录使用 /s
并结合 /a:-d
以排除输出中的目录。
for /f %f in ('dir *.* /b /s /a:-d') do @type %f>>save.txt
使用 PowerShell:
连接文件列表:
Get-Content .\file1.txt,.\file2.txt | Out-File Save.txt
连接目录中的所有文件:
(Get-ChildItem -File | ForEach-Object { Get-Content $_ } ) | out-file save.txt
递归连接所有文件:
(Get-ChildItem -File -Recurse | ForEach-Object { Get-Content $_.FullName } ) | out-file save.txt
注意:对于二进制文件,您可能需要将 /b
开关添加到 copy
命令,或者如果使用 PowerShell,则将 -Raw
添加到 Get-Content
使用 Get-ChildItem
递归地发现文件夹层次结构中的任何文件,然后将这些文件通过管道传输到 Get-Content
(用于读取),最后将这些调用的输出通过管道传输到 Set-Content
(用于将整个东西写回磁盘)。
Get-ChildItem path\to\root\folder -Recurse -File |Get-Content |Set-Content path\to\save.txt
注意:与cat
不同,Get-Content
默认将文件读取为text/strings,因此这适用于text-encoded个文件(如js,php 和 html 源文件),但不适用于二进制文件