我正在尝试对来自不同目录的txt文件进行大规模合并。
所以我有
C:/ data / Folder 1 / Test.txt
c:/ data / Folder 2 / Test.txt
C:/data/folder2/testfolder/test.txt
现在我的问题是能够在重命名时将它们全部移动到一个目录中,不幸的是它们都具有相同的名称,然后将它们合并在一起。
到目前为止我可以解决的问题,
我可以使用以下内容将它们全部移动到一个目录
For /r c:/data %F in (*.txt) do copy %f C:/exporteddata
将从数据目录中获取所有文本文件并将它们放入exporteddata目录,但只有在每个文件名都是唯一的时才有效,在我的例子中它们都是同名的
我知道,一旦我将所有.txt文件放在同一目录中,我就可以使用
copy *.txt output.txt
在导出的数据目录中运行
但是我无法解决的问题是如何进行重命名,这会在复制之前为所有txt文件提供唯一的ID。
任何帮助都会很棒。
非常感谢
答案 0 :(得分:0)
您实际上可以将所有文件复制到一个文件,而无需移动到新位置。 您可以选择在所需命令之前通过removin echo复制和连接所有文件。我设置将所有文件复制到新目录“AllFilesFolder”。请将脚本放在基础目录中。 另外 - 为了避免名称整理(将同名文件复制到AllFilesFolder),会在复制文件名时添加一个id。每个文件都会增加id。
@echo off
setlocal enabledelayedexpansion
set id=0
if not exist AllFilesFolder mkdir AllFilesFolder
for /f %%a in ('dir /B /S /A-D *.txt') do (
echo copy "%%a" "AllFilesFolder\%%~dpna_!id!%%~xa"
echo type "%%a" >> allFiles.txt
set /a id+=1
)
答案 1 :(得分:0)
此cmd提示行将合并您的文件。
For /r "c:\data" %f in (*.txt) do type "%f" >> C:\exporteddata
将%
加倍到%%
以便在批处理文件中使用。