根据列表重命名文件

时间:2019-01-17 17:05:05

标签: windows powershell file batch-file file-rename

可用的方法,AFAIK:在执行此工作的Windows 7上创建一个* .bat文件。无法安装任何其他程序。

假设我们有一个包含一些文件的文件夹。我有一个列表,其中每个文件都根据文件名与ID关联。

现在,我需要基于该列表将这些文件复制到具有关联ID作为文件名的位置。

示例:

文件夹中的文件

10.txt
11.txt
12.txt

列表:

10 83
11 49
12 94

结果应为:

10.txt → 83.txt
11.txt → 49.txt
12.txt → 94.txt

1 个答案:

答案 0 :(得分:1)

您的问题未指定是要所有文件,特定文件还是列表文件是否也包含文件扩展名,因此,我将仅使用您的示例:

@echo off
for /f "tokens=1,*" %%i in (list.txt) do (
   if exist "%%i.txt" %%j copy /Y "%%i.txt" "%%j.txt"

)

您可能想添加/Y以禁止提示覆盖文件。但是,如果您不想覆盖,并且也许在以后的某个阶段,可能需要将源文件的内容附加到现有的新文件中,那么可以检查目标文件是否存在,然后附加:

@echo off
for /f "tokens=1,*" %%i in (list.txt) do (
   if exist "%%i.txt" if not exist "%%j.txt copy "%%i.txt" "%%j.txt"
   if exist "%%j.txt" type "%%i.txt">>"%%j.txt"
)