[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] [已解决]写一个reg(执行cmd),专门针对pdf,判断文件名包含某字符则相应改名

本帖最后由 lforl 于 2024-6-2 06:59 编辑

写一个reg(执行cmd),针对pdf文件(其他文件类型不出现右键)右键改名:

如果文件名中有字符“从 ”,则删除“从 ”。
如果没有字符“从 ”,则在文件名之前添加“【好】”。


努力了一下,右键pdf菜单都没出现,求大佬提携指点!
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.pdf\shell\AddDatePrefix]
@="Add Date Prefix"

[HKEY_CLASSES_ROOT\.pdf\shell\AddDatePrefix\command]
@="cmd /c  ren \"%1\" 【好】\"%1\".pdf&exit"

本帖最后由 77七 于 2024-6-1 16:05 编辑

楼主之前的帖子不是有zip改名的吗?我参考写了一个
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\SystemFileAssociations\.pdf\Shell\rename1]
  3. @="自定义重命名"
  4. [HKEY_CLASSES_ROOT\SystemFileAssociations\.pdf\Shell\rename1\Command]
  5. @="cmd /v:on /c for /f \"delims=\" %%i in (\"%1\") do set str=%%~ni&&if \"!str!\" neq \"!str:从=!\" (ren \"%%~i\" \"!str:从=!%%~xi\") else (ren \"%%~i\" \"好%%~nxi\")"
复制代码
bat小白,请多指教!谢谢!

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%f in (*.pdf) do (set "filename=%%~nf"
  3.     if "!filename:从=!" neq "!filename!" (set "newname=!filename:从=!")else set "newname=好!filename!"   
  4.     ren "%%f" "!newname!%%~xf"
  5. )
  6. endlocal
  7. pause
复制代码
请将上述代码保存为ANSI编码`.bat`批处理文件,并放在需要更改文件名的文件夹内。运行该批处理文件后,它会遍历文件夹中的所有*.pdf文件,根据您的要求进行重命名

TOP

  1. reg add "HKCR\SystemFileAssociations\.pdf\shell\AddDatePrefix" /ve /t REG_SZ /d "Add Date Prefix" /f
  2. reg add "HKCR\SystemFileAssociations\.pdf\shell\AddDatePrefix\command" /ve /t REG_SZ /d "cmd /v:on /c for /f \"delims=\" %%%%i in (\"%%1\")do (set \"a=%%%%~ni\"&(if \"!a:从=!\" neq \"!a!\" (set \"newname=!a:从=!\")else set \"newname=好!a!\")&ren \"%%%%i\" \"!newname!%%%%~xi\")" /f
复制代码

TOP

回复 2# 77七

哈哈,可以的!的确能生效!
但是我总感觉我那老的写的太复杂,是不是可以用findstr 实现更简洁。
findstr /B /C:\"从\"

我研究下跟帖的另外两位大佬的看看...

TOP

楼主之前的帖子不是有zip改名的吗?我参考写了一个
77七 发表于 2024-6-1 15:46



    目前还是这方法稳定,简洁。感谢楼上另外两位大佬帮助。


对了,我文件名中有字符“从 ”(注意从字后面带一个空格),删除“从”字和空格“ ”。
一旦考虑带一个空格感觉就复杂起来了。
    @77七  大佬有辙不?

TOP

回复 6# lforl


   在2楼代码,两个从后面添加空格
bat小白,请多指教!谢谢!

TOP

回复  lforl


   在2楼代码,两个从后面添加空格
77七 发表于 2024-6-1 23:51


果然ok!
高!比我自己写的兼容性好多了!

也非常感谢@smss大力帮助!

TOP

返回列表