楼主: 527907615
收起左侧

[系统] 请问大家有见过创建快捷方式的批处理不

[复制链接]
527907615
 楼主| 发表于 2018-1-10 18:55:17 | 显示全部楼层
kfk 发表于 2018-1-10 18:04
好,我再改。

你的图中,看上去.的前后有空格,这是必须的吗?

不是必须的,方便你辩认打上去而己,只要有点就可以了
kfk
发表于 2018-1-11 20:12:15 | 显示全部楼层
▲如果文件己存在会更名失败能跳过或忽略继续执行其它文件更名不 (因为剪贴板里的内容有时可能会跟其中一个文件的名称一致)
好像不是你说的那样。
从代码分析和我这边的实际运行来看,出错的原因是:
文件 与 文件夹 之间的重名冲突。
▲你再看看你那里是不是这种情况?
新版已修正。

还有,由于你的序号要加.点,
则如果存在 无扩展名的文件,重命名冲突时会被加上 .(2) 这样的形式,而这可能会被程序当成是扩展名而影响使用。
▲这种情况似乎没法处理,因为你要加的是.点。

其他详见▼说明(较前有增补)。

kfk
发表于 2018-1-11 20:16:13 | 显示全部楼层
本帖最后由 kfk 于 2018-1-13 00:49 编辑

用(剪贴板中的)文字(批量)重命名.vbs

说明:

若剪贴板中无文字,则询问,以免莫明其妙。

处理非法字符(用的是简单的Replace语句,一符一行,便于自改):
▲默认将 \/:*?"<>| 替换成 全角,以接近原貌。
▲默认将 Tab符 替换成 全角空格。
▲默认将 换行符 替换成 句号。这样你可以一次复制多行文字,自动并成一行。

支持批量。
支持 文件与文件夹并存 的情况。

重名会加序号。
▲默认添加 .(2) 形式(◆会影响到 无扩展名的文件,可据情自改)。

会跳过所有合格的项(即,能不改就不改)。

下载vbs:

代码:
  1. Set oArgs = WScript.Arguments
  2. If oArgs.Count = 0 Then WScript.Quit

  3. sText = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")

  4. If IsNull(sText) Then
  5.         sText = InputBox("剪贴板中无文字", WScript.ScriptName)
  6.         If sText = "" Then WScript.Quit
  7. End If

  8. sText = Replace(sText, "\", "\")
  9. sText = Replace(sText, "/", "/")
  10. sText = Replace(sText, ":", ":")
  11. sText = Replace(sText, "*", "*")
  12. sText = Replace(sText, "?", "?")
  13. sText = Replace(sText, """", "”")
  14. sText = Replace(sText, "<", "<")
  15. sText = Replace(sText, ">", ">")
  16. sText = Replace(sText, "|", "|")
  17. sText = Replace(sText, vbTab, " ")
  18. sText = Replace(sText, vbCrLf, "。")
  19. sText = Replace(sText, vbCr, "。")
  20. sText = Replace(sText, vbLf, "。")

  21. Set oFSO = CreateObject("Scripting.FileSystemObject")

  22. For i = 0 To oArgs.Count - 1

  23.         If oFSO.FileExists(oArgs.Item(i)) Then
  24.                 sub_Rename oFSO.GetFile(oArgs.Item(i)), "." & oFSO.GetExtensionName(oArgs.Item(i))

  25.         ElseIf oFSO.FolderExists(oArgs.Item(i)) Then
  26.                 sub_Rename oFSO.GetFolder(oArgs.Item(i)), ""

  27.         End If
  28. Next



  29. Sub sub_Rename(oItem, sExtName)
  30.         sNameOld = oFSO.GetFileName(oArgs.Item(i))

  31.         Do
  32.                 If j>0 Then sN = ".(" & j+1 & ")"        '◆加序号
  33.                 sNameNew = sText & sN & sExtName
  34.                 '▼跳过所有合格的项,能不改就不改:
  35.                 If sNameNew = sNameOld Then Exit Sub
  36.                 j=j+1

  37.                 sPath = oFSO.GetParentFolderName(oArgs.Item(i)) & "\"
  38.         Loop While oFSO.FileExists(sPath & sNameNew) Or oFSO.FolderExists(sPath & sNameNew)

  39.         oItem.Name = sNameNew
  40. End Sub
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
527907615
 楼主| 发表于 2018-1-12 16:32:51 | 显示全部楼层
kfk 发表于 2018-1-11 20:16
用(剪贴板中的)文字(批量)重命名.vbs

说明:

是不是上传错了?我下载的这个给文件更名时非但没在括号前加.而且还弹出更名询问对话框,感觉会影响效率(默认就是确认是否会更好呢)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
kfk
发表于 2018-1-12 19:17:52 | 显示全部楼层
527907615 发表于 2018-1-12 16:32
是不是上传错了?我下载的这个给文件更名时非但没在括号前加.而且还弹出更名询问对话框,感觉会影响效率 ...

我这里试的结果:
1▲用 wscript "脚本路径" //u 没问题。
2▲直接用vbs则(路径处理)有问题。

你先试试1,告诉我结果。
我再完善一下2。
527907615
 楼主| 发表于 2018-1-12 20:24:11 | 显示全部楼层
kfk 发表于 2018-1-12 19:17
我这里试的结果:
1▲用 wscript "脚本路径" //u 没问题。
2▲直接用vbs则(路径处理)有问题。

创建了快捷方式目标路径用 wscript "脚本路径" //u  再运行试了试然后发现原来显示扩展名跟不显示扩展名的更名效果是不样的,还有那个 . 是加在扩展名的前面不是加在括号的前面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
kfk
发表于 2018-1-13 01:04:18 | 显示全部楼层
527907615 发表于 2018-1-12 20:24
创建了快捷方式目标路径用 wscript "脚本路径" //u  再运行试了试然后发现原来显示扩展名跟不显示扩展名 ...

看来 “改名可在资源管理器中(逐项)撤消”那句 会受 显隐扩展名 的影响。
已删除。

请回53楼下载新版:
https://bbs.kafan.cn/forum.php?m ... 06&pid=41306765

最好 两种运行方式+显隐扩展名 都试一下。
527907615
 楼主| 发表于 2018-1-13 01:27:25 | 显示全部楼层
kfk 发表于 2018-1-13 01:04
看来 “改名可在资源管理器中(逐项)撤消”那句 会受 显隐扩展名 的影响。
已删除。

谢谢亲,辛苦了,这回终于完美了
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-5-3 12:29 , Processed in 0.089254 second(s), 14 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表