我正在尝试开发一个允许我重命名,删除和移动文件的批处理脚本。
对于每个文件夹:删除" 00.jpg"和" Credits.jpg"文件。
FOR /D %%d IN (*) DO del %%d\00.jpg;del %%d\Credits.jpg
对于每个文件夹:检索最后4个字符(XXXX) 必须将每个文件夹中的每个文件重命名为:XXXX +" (" + filename +")" .jpg
例如:a_v18_c160 \ 03.jpg - > a_v18_c160 \ c160(03).jpg
文件夹名称可以包含特殊字符:" ["。"]"。" _"," - "但总是以" c"再加上三个数字。
如果没有必要,请删除0。 例如:c160(03).jpg - > c160(3).jpg
将文件从每个子文件夹移动到根文件夹:
示例:根文件夹\ a \ c160(02).jpg - >根文件夹\ c160(02).jpg
FOR /D %%d IN (*) DO move %%d\* "F:\Root Folder\"
从这样的事情开始:
F:\ Root Folder \ a_v18_c160 \ 00.jpg
F:\ Root Folder \ a_v18_c160 \ 01.jpg
F:\ Root Folder \ a_v18_c160 \ 02.jpg
F:\ Root Folder \ a_v18_c160 \ 03.jpg
F:\ Root Folder \ a_v18_c160 \ Credits.jpg
F:\ Root Folder \ a_v18_c161 \ 00.jpg
F:\ Root Folder \ a_v18_c161 \ 01.jpg
F:\ Root 文件夹\ a_v18_c161 \ Credits.jpg
结果将是:
F:\ Root Folder \ c160(01).jpg
F:\ Root Folder \ c160(02).jpg
F:\ Root Folder \ c160(03).jpg
F:\ Root Folder \ c161(01).jpg
F:\ Root Folder \ a_v18_c160 \\ F:\ Root Folder \ a_v18_c161 \
如何执行第2步?
答案 0 :(得分:1)
在一些示例文件和文件夹上测试。
它应该从要移动文件的root_folder运行。
@echo off
for /r %%a in (00.jpg Credits.jpg) do del "%%a"
setlocal enabledelayedexpansion
for /d /r %%a in (*) do (
set "num=%%~nxa"
set "num=!num:~-4!"
for %%b in ("%%a\*.jpg") do move "%%b" ".\!num! (%%~nb)%%~xb"
)
for /f "delims=" %%a in ('dir /b /a-d *.jpg') do (
set "name=%%a"
ren "%%a" "!name:(0=(!"
)
答案 1 :(得分:0)
而不是批处理脚本,您总是可以用Java,Perl,Ruby,PHP编写命令行程序。等你最喜欢的语言。我发现使用高级编程语言可以更轻松地编写这样复杂的脚本。