本帖最后由 kfk 于 2018-1-11 20:32 编辑
注意:此版不完美,结构也不好。
新版在 53楼:
https://bbs.kafan.cn/forum.php?m ... 109806&pid=41306765
改好了,你试试。
改动说明:
若剪贴板中无文字,则询问,以免莫明其妙。
处理非法字符(用的是简单的Replace语句,一符一行,便于你自己更改):
▲默认将\/:*?"<>|替换成全角,以接近原貌。
▲默认将换行符替换成句号。这样你可以一次复制多行文字,自动并成一行。
支持批量。
重名会加序号。
vbs:
代码:- Set oArgs = WScript.Arguments
- If oArgs.Count = 0 Then WScript.Quit
- sText = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
- If IsNull(sText) Then
- sText = InputBox("剪贴板中无文字", WScript.ScriptName)
- If sText = "" Then WScript.Quit
- End If
- sText = Replace(sText, "\", "\")
- sText = Replace(sText, "/", "/")
- sText = Replace(sText, ":", ":")
- sText = Replace(sText, "*", "*")
- sText = Replace(sText, "?", "?")
- sText = Replace(sText, """", "”")
- sText = Replace(sText, "<", "<")
- sText = Replace(sText, ">", ">")
- sText = Replace(sText, "|", "|")
- sText = Replace(sText, vbCrLf, "。")
- sText = Replace(sText, vbCr, "。")
- sText = Replace(sText, vbLf, "。")
- Set oFSO = CreateObject("Scripting.FileSystemObject")
- For i = 0 To oArgs.Count - 1
- If oFSO.FileExists(oArgs.Item(i)) Then
- sExtName = "." & oFSO.GetExtensionName(oArgs.Item(i))
- If sExtName = "." Then sExtName = ""
- j=1 : sN=""
- Do
- If j>1 Then sN = " {" & j
- sName = sText & sN & sExtName
- j=j+1
- Loop While oFSO.FileExists(sName)
- Set oItem = oFSO.GetFile(oArgs.Item(i))
- oItem.Name = sName
- ElseIf oFSO.FolderExists(oArgs.Item(i)) Then
- j=1 : sN=""
- Do
- If j>1 Then sN = " {" & j
- sName = sText & sN
- j=j+1
- Loop While oFSO.FolderExists(sName)
- Set oItem = oFSO.GetFolder(oArgs.Item(i))
- oItem.Name = sName
- End If
- Next
复制代码
|