我对命令行的经验很少,我正在尝试做一些非常复杂的事情(对我来说)。
我有一个目录,其中包含很多子文件夹和文件。所有文件名都包含父文件夹名称,例如:
Folder1
data_Folder1.csv
other_file_Folder1.csv
Folder2
data_Folder2.csv
other_file_Folder2.csv
在另一个文件夹(全部在一个目录中)中,我有所有
data_FolderX.csv
文件的新版本,我需要在原始文件夹中替换它们。由于后来的分析,我无法给它们起另一个名字。有没有办法在命令行中用新版本替换原始文件夹中的文件?
我尝试过这个将文件替换到多个文件夹/子目录中但对我不起作用。鉴于我的目录中有很多 .csv 文件,我不想全部替换它们,所以我认为我不应该根据文件扩展名来执行此操作。我还想指出,名称“FolderX”包含其他几个
_
,所以原则上,我想替换.csv
中以data
开头的FolderX
文件。
有人可以帮忙吗? 预先感谢!
您可以使用 Windows REPLACE 命令。 将一个文件替换为另一个文件(两者具有相同的文件名)。
在所有子目录 (/S ) 中替换时,源中的文件将与每个子文件夹进行匹配,这不是镜像,每个文件夹中的文件将单独匹配。 (/S) 子目录选项不能与添加文件 (/A) 或限制更新旧版本 (/U) 结合使用。 REPLACE 将列出所有被替换的文件。默认情况下,仅替换目标中已存在的文件。 您不能使用 REPLACE 更新任何具有隐藏或系统属性集的文件。 目标文件夹的路径不得包含尾部反斜杠。
示例
语法:
replace C:\SourceFile.rtf C:\Some_Folder_Which_Contains_SubFolders /s /r /u
命令:
replace "D:\Downloads\newfile\testfile.rtf" "D:\Downloads\destinationfolder" /s /r /u
输出:
Replacing D:\Downloads\destinationfolder\testfile.rtf
Replacing D:\Downloads\destinationfolder\testfolder\testfile.rtf
Replacing D:\Downloads\destinationfolder\testfolder\folder2\testfile.rtf
Replacing D:\Downloads\destinationfolder\testfolder\folder2\folder4\testfile.rtf
Replacing D:\Downloads\destinationfolder\testfolder\folder2\folder4\folder5\testfile.rtf
Replacing D:\Downloads\destinationfolder\testfolder\folder3\testfile.rtf