【发布时间】:2012-02-26 11:13:00
【问题描述】:
我想将上传到另一台服务器的文件从扩展名 .txt 重命名为 .txt_mvd 并移动到不同的目录以在 Windows 批处理模式下存档。谁能帮忙看看windows批处理脚本应该是什么?
谢谢。
【问题讨论】:
-
已尝试使用 Windows powershell。这应该会让你很容易。
标签: file batch-file rename move
我想将上传到另一台服务器的文件从扩展名 .txt 重命名为 .txt_mvd 并移动到不同的目录以在 Windows 批处理模式下存档。谁能帮忙看看windows批处理脚本应该是什么?
谢谢。
【问题讨论】:
标签: file batch-file rename move
这里是代码
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 行代码)。
此脚本首先重命名您在起始文件夹(第 3 个参数)中选择的文件(第 1 个参数),将扩展名更改为新的(第 2 个参数),然后将重命名的文件移动到您选择的文件夹中(第 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
改为在没有多余空格的情况下写入参数:
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%"
)
)
)
【讨论】: