windows - 批处理脚本从文件夹名称重命名文件; “-”的问题

标签 windows batch-file cmd rename

我从这里发现多年以来一直使用此脚本来从父文件夹名重命名电影文件名:

@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
适当的脚本会首先确定目录中每种文件类型中是否存在多个,以防止随机重命名其中一种,或者执行一些其他脚本以确保仅重命名特定的一种。

关于windows - 批处理脚本从文件夹名称重命名文件; “-”的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65522712/

相关文章:

python - 'pip' 未被识别为内部或外部命令

windows - 怎么逃!在变量的值中?

java - 尝试在 Windows 上运行 Maven 时出错

windows - 防止 WritePrivateProfileString 进入注册表

windows - 我将如何定期备份 Windows 应用程序日志?

batch-file - Reg 批处理脚本的查询脚本

windows - 列出cmd中的所有文件夹和子文件夹,但不包括文件

具有多个带空格参数的 Java ProcessBuilder

windows - 管道在 git for windows 中的 bash 中返回空字符串

windows - 将批处理文件作为 Windows 服务运行