根据列表重命名文件
Rename files, based on a list
可用方法,据我所知:在 Windows7 上创建一个 *.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
你的问题没有说明你是否需要所有文件、特定文件,或者你的列表文件是否也将包含文件的扩展名,所以我将只使用你的例子:
@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"
)
可用方法,据我所知:在 Windows7 上创建一个 *.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
你的问题没有说明你是否需要所有文件、特定文件,或者你的列表文件是否也将包含文件的扩展名,所以我将只使用你的例子:
@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"
)