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

[文件操作] 批处理怎么删除文件夹中文件名的中文符号?

怎么删除文件夹中文件名的中文符号

回复 1# xuhuangbin


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,请用使用网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. rem 另存为 ANSI 编码 bat
  2. ' & cls & cscript.exe /nologo /e:vbscript "%~f0" %* & pause & exit /b
  3. p = "."    '当前路径。可以指定其它路径,比如 d:\test\
  4. Set oWshShell = CreateObject("WScript.Shell")
  5. Set oFSO = CreateObject("Scripting.FileSystemObject")
  6. p = oFSO.GetAbsolutePathName(p)
  7. oWshShell.CurrentDirectory = p
  8. For Each i In oFSO.GetFolder(p).Files
  9.     s = oFSO.GetFileName(i)
  10.     t = ""
  11.     For j = 1 To Len(s)
  12.         If CLng("&H" & Hex(Asc(Mid(s, j, 1)))) < 127 Then t = t & Mid(s, j, 1)
  13.     Next
  14.     If Not oFSO.FileExists(t) Then oFSO.MoveFile s, t
  15. Next
  16. wsh.Echo "ok"
复制代码
只保留ascii编码的字符
只处理当前文件夹下的文件
如果同名文件已存在则跳过

QQ 20147578

TOP

本帖最后由 aloha20200628 于 2024-11-25 15:42 编辑

回复 1# xuhuangbin

以下代码存为 test.bat 运行》剔除当前目录下每个文件名中的中文字符(忽略只有中文字符的文件名)...
  1. @echo off &for /f "delims=" %%F in ('dir/b/a-d') do (
  2.    set "F=%%F" &set "nF=%%~nF" &setlocal enabledelayedexpansion
  3.    call :cutHZ
  4.    if defined _nF if "!_nF!" neq "%%~nF" (ren "!F!" "!_nF!%%~xF")
  5.    endlocal
  6. ) 2>nul
  7. pause&exit/b
  8. :cutHZ
  9.    if "!nF!"=="" (exit/b) else (
  10.       set "c=!nF:~,1!" &if "!c!" leq "Z" (set "_nF=!_nF!!c!")
  11.       set "nF=!nF:~1!" &goto :cutHZ
  12.    )
  13.    exit/b
复制代码

TOP

返回列表