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


    测试下我的,存为test.vbs

TOP

回复 11# 172043209


    第三行,dir /b /ad改为dir /b /ad /s

TOP

回复 2# taofan712


    OK,感谢感谢,测试成功,加了一个符号,可以保留住小数点符号了,想再问一下,如果是想处理当前文件加下子文件名修改一下哪里?

TOP

test.vbs
  1. Dim fso
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set ThisFolder=fso.GetFolder(".")
  4. For Each file In thisfolder.Files
  5. FileBaseName=fso.GetBaseName(File.Name)
  6. FileExtName=fso.GetExtensionName(File.Name)
  7. [判断] = True
  8. While [判断]
  9. If Clng("&H" & Hex(Asc(Right(FileBaseName,1)))) > 255 Then
  10. FileBaseName=Left(FileBaseName,Len(FileBaseName)-1)
  11. Else
  12. [判断]=False
  13. End If
  14. Wend
  15. fso.MoveFile file.Path,file.ParentFolder&"\"&FileBaseName&"."&FileExtName
  16. Next
复制代码
1

评分人数

TOP

本帖最后由 taofan712 于 2017-5-28 23:33 编辑

回复 7# 172043209


    在第六行,abcd那里,找个位置加上小数点就行。


但在以下情况会出现其他问题:
文件名本身就不含有汉字的文件夹数量在2个以上。
除汉字以外剩余的字母数字部分相同的文件夹数量在2个以上。
其他

TOP

需要保留住小数点,如C23-GH3421-34.00023 飞蝗芜湖      变成  C23-GH3421-34.00023

刚才的代码把34后面的小数点.也删除了

TOP

回复 4# taofan712


    您好,把小数点删除掉了??

TOP

回复 2# taofan712


   我测试一下!!

TOP

回复 3# 老刘1号[/


是要删除字符串后面的汉字。字符串里面包括字母,数字,-和.

TOP

本帖最后由 taofan712 于 2017-5-28 23:19 编辑

回复 3# 老刘1号
文件名设想成这种情况:

汉123字
汉字a2
汉2字汉  3字3
—  aa汉#字
汉字
123字
a  2字

TOP

没搞太懂,是删除 . 后面所有的汉字?还是最后的非汉字后面的汉字?

TOP

本帖最后由 taofan712 于 2017-5-28 23:30 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /ad') do (
  4.     set "fn=%%~a"
  5.     set "fnw=!fn!"
  6.     for /f "tokens=1-5 delims=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.- " %%1 in ("%%~a") do (
  7.         if not "%%1%%2%%3%%4%%5"=="%%~a" (
  8.             call :change %%1 %%2 %%3 %%4 %%5
  9.         ) else (
  10.             ren "!fn!" chunhanzi 2>nul || ren "!fn!" chunhanzi_1
  11.         )
  12.     )
  13. )
  14. echo;处理完毕&pause>nul&exit /b
  15. :change
  16. for %%b in (%1 %2 %3 %4 %5) do set "fnw=!fnw:%%b=!"
  17. set "fnw=!fnw: =!"
  18. ren "!fn!" "!fnw!" 2>nul ||ren "!fn!" "!fnw!_1"
  19. goto :eof
复制代码
原以为不会太难,没想到在写的时候发现特殊情况会有很多,所以代码不是很完美。见谅。
2

评分人数

TOP

返回列表