返回列表 发帖

[文件操作] 【已解决】求助:生成批处理文件

本帖最后由 lj670 于 2025-1-26 01:19 编辑
  1. @echo off
  2. set "prefix=3(1)-"
  3. rem 处理 .mp3 文件
  4. for %%i in (*.mp3) do (
  5.     set "filename=%%~ni"
  6.     setlocal enabledelayedexpansion
  7.     if "!filename:~0,5!" neq "%prefix%" (
  8.         ren "%%i" "%prefix%%%i"
  9.     )
  10.     endlocal
  11. )
  12. rem 处理 .srt 文件
  13. for %%i in (*.srt) do (
  14.     set "filename=%%~ni"
  15.     setlocal enabledelayedexpansion
  16.     if "!filename:~0,5!" neq "%prefix%" (
  17.         ren "%%i" "%prefix%%%i"
  18.     )
  19.     endlocal
  20. )
复制代码
一个批量给mp3文件和srt文件添加"3(1)-"前缀的脚本,现在需要分别添加前缀"3(0)-""3(1)-""3(2)-""3(3)-""3(4)-"一直到"3(20)-",根据这个脚本批处理生成对应的bat文件,如:"3(0).bat"(添加前缀"3(0)-")"3(1).bat"(添加前缀"3(1)-")"3(2).bat"(添加前缀"3(2)-")等等,求助各位大佬,谢谢!

回复 2# aloha20200628


    我好像没有描述清楚,根据这个添加前缀"3(1)-"的脚本,bat批量生成添加前缀"3(1)-"脚本,添加前缀"3(2)-"脚本,添加前缀"3(3)-"脚本,添加前缀"3(4)-"脚本,一直到添加前缀"3(20)-"脚本,因为需要好多这种顺序的bat脚本,一个个复制后再修改参数太过麻烦,如:把"3(1)-"修改为"3(2)-"...直到"3(20)-"等等 "4(1)-"修改为"4(2)-"..."4(20)-"等等很多很多,想bat批处理直接生成,不知是否可行,谢谢!

TOP

回复 5# aloha20200628


    测试完美,非常适合我,谢谢!

TOP

5楼的版本非常适合我的需求,比较简洁直接,非常感谢!我的方案复杂一些,贴出来参考一下:
for i in range(21):
    prefix = f"3({i})-"
    script_content = f"""@echo off
set "prefix={prefix}"
rem 处理 .mp3 文件
for %%i in (*.mp3) do (
    set "filename=%%~ni"
    setlocal enabledelayedexpansion
    if "!filename:~0,{len(prefix)}!" neq "%prefix%" (
        ren "%%i" "%prefix%%%i"
    )
    endlocal
)
rem 处理 .srt 文件
for %%i in (*.srt) do (
    set "filename=%%~ni"
    setlocal enabledelayedexpansion
    if "!filename:~0,{len(prefix)}!" neq "%prefix%" (
        ren "%%i" "%prefix%%%i"
    )
    endlocal
)"""
    script_name = f"3({i})-.bat"
    with open(script_name, "w", encoding="ansi") as f:
        f.write(script_content)
    print(f"已生成脚本: {script_name}")
保存为py文件,运行后生成 3(0).bat,3(1).bat,3(2).bat,...,3(20).bat 共21个批处脚本文件.

TOP

返回列表