如何重命名文件并将文件移动到新目录

时间:2012-02-03 20:56:42

标签: file batch-file rename move

我想将上传到另一台服务器的文件从扩展名.txt重命名为.txt_mvd,然后移动到另一个目录以便在Windows批处理模式下进行存档。任何人都可以帮助Windows批处理脚本应该是什么?

感谢。

1 个答案:

答案 0 :(得分:2)

这是代码

FOR  /R C:\your_folder %%d  IN  (*.txt)  DO  (
    ren %%d %%~nd.txt_mvd
)

%% d是完整的文件名+路径
%% ~nd仅返回没有扩展名为的文件名 使用/ R参数,它将扫描文件夹和子文件夹

更新1

以下代码应按要求运作 我添加了一个忽略子文件夹的IF。

FOR  /R E:\your_folder\ %%d  IN  (*.*)  DO  (
    IF %%~dpd==E:\your_folder\ (
        ren %%d %%~nd.txt_mvd
    )
)

更新2

固定代码

FOR  /R E:\your_folder\ %%d  IN  (*.txt)  DO  (
    IF %%~dpd==E:\your_folder\ (
        ren %%d %%~nd.txt_mvd
    )
)

更新3
这是一个更通用和参数化的脚本版本 根据需要更改起始参数(前4行代码) 此脚本首先重命名您在起始文件夹中选择的文件(第一个参数)(第三个参数),将扩展名更改为新的(第二个参数),然后将重命名的文件移动到您选择的文件夹中(第四个参数)。

set Extension_of_file_you_want_to_renamne_and_move=txt
set New_extension_of_moved_files=txt_mvd

set Folder_that_contain_your_files=C:\Your_starting_folder\
set Folder_where_to_move_your_files=C:\Your_destnation_folder\

FOR  /R %Folder_that_contain_your_files% %%d  IN  (*.%Extension_of_file_you_want_to_renamne_and_move%)  DO  (
    IF %%~dpd==%Folder_that_contain_your_files% (
    IF %%~xd==.%Extension_of_file_you_want_to_renamne_and_move% (
        ren "%%~d" "%%~nd.%New_extension_of_moved_files%"
        move "%%~dpnd.%New_extension_of_moved_files%" "%Folder_where_to_move_your_files%"
        )
    )
)

更改参数时请勿添加任何空格 所以不要改变那样的参数:

set Folder_that_contain_your_files = c:\myFolder      <--- WRONG, WON'T WORK, there are unneeded space

而是编写参数WITHOUT withouteded space:

set Folder_that_contain_your_files=c:\myFolder      <--- OK, THIS WILL WORK, there are no extra spaces

更新4
修复了代码,我添加了一些引号,如果文件夹名称包含空格,代码将无效。

set Extension_of_file_you_want_to_renamne_and_move=txt
set New_extension_of_moved_files=txt_mvd

set Folder_that_contain_your_files=C:\Your_starting_folder\
set Folder_where_to_move_your_files=C:\Your_destnation_folder\

FOR  /R "%Folder_that_contain_your_files%" %%d  IN  (*.%Extension_of_file_you_want_to_renamne_and_move%)  DO  (
    IF "%%~dpd"=="%Folder_that_contain_your_files%" (
    IF %%~xd==.%Extension_of_file_you_want_to_renamne_and_move% (
        ren "%%~d" "%%~nd.%New_extension_of_moved_files%"
        move "%%~dpnd.%New_extension_of_moved_files%" "%Folder_where_to_move_your_files%"
        )
    )
)