Board logo

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

作者: lforl    时间: 2024-6-1 11:52     标题: [已解决]写一个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 15:46

本帖最后由 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\")"
复制代码

作者: smss    时间: 2024-6-1 15:59

  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文件,根据您的要求进行重命名
作者: smss    时间: 2024-6-1 16:38

  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
复制代码

作者: lforl    时间: 2024-6-1 18:28

回复 2# 77七

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

我研究下跟帖的另外两位大佬的看看...
作者: lforl    时间: 2024-6-1 23:02

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



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


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

回复 6# lforl


   在2楼代码,两个从后面添加空格
作者: lforl    时间: 2024-6-2 00:03

回复  lforl


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


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

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




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2