windows - 从文件夹名称重命名文件的批处理脚本;“-”的问题
问题描述
多年来一直使用这个脚本,我从这里找到从父文件夹名重命名电影文件名:
@echo off
for /r /d %%x in (*) do (
pushd "%%x"
echo %%x
for /F %%i in ("%%x") do (
ren *.mkv "%%~ni.mkv" 2> NUL
ren *.avi "%%~ni.avi" 2> NUL
ren *.mp4 "%%~ni.mp4" 2> NUL
)
popd
)
所以我遇到的唯一问题是父文件夹如下所示:MovieFolder-xyz
运行脚本,文件名将是:MovieFolder.mp4
这里的问题是“-xyz”被省略了,我太简单了,无法弄清楚如何修复这个脚本,这样我就不必手动重命名所有文件。蒂亚!
解决方案
我不确定您为什么要这样做,但是对于相同的任务,您可以这样做:
@for /r /d %%x in (*) do @(ren "%%x\*.mkv" "%%~nxx.mkv" 2> NUL
ren "%%x\*.avi" "%%~nxx.avi" 2> NUL
ren "%%x\*.mp4" "%%~nxx.mp4" 2> NUL)
或者更简单:
@for /r /d %%x in (*) do @for %%y in (mkv avi mp4) do @ren "%%x\*.%%y" "%%~nxx.%%y" 2> NUL
一个合适的脚本会首先确定目录中是否存在多个这些文件类型,以防止随机重命名其中一个,或执行一些额外的脚本以确保仅重命名特定的一个。
推荐阅读
- javascript - Javascript 日期格式“dd-MMM-yyyy”在 IE 中不起作用
- list - 如何在 prolog 中不使用 append() 方法将列表附加到另一个列表?
- java - 使用 SwingWorker 输出数据
- c# - 空输入发送到 Oracle 函数
- facebook - 无法使用测试用户创建 facebook 测试页面
- html - 媒体查询不起作用且页面没有响应
- angular - 将一个组件插入 CDK 门户
- java - java和kotlin之间的泛型!!帮我?
- javascript - 提取多个链接并使用 JQuery 在控制台中单击
- javascript - 当我在旧版本的写字板中打开文件时,某些字符会发生变化