找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 36337|回复: 10

[文件操作] 【已解决】批处理如何删除文件夹名中的中文/汉字

[复制链接]
发表于 2016-9-2 10:49:55 | 显示全部楼层 |阅读模式
如题
批处理如何获取文件夹名并删除特定的字符或者字符串(指 汉字)后重命名文件夹,不改变文件夹的路径。

汉字部分的获取并删除,汉字部分长度随机


见8楼

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2016-9-2 11:01:56 | 显示全部楼层
ren2应该可以的
 楼主| 发表于 2016-9-2 11:06:04 | 显示全部楼层
回复 2# wskwfkbdn


    不用第三方,来一发。我是win10系统
发表于 2016-9-2 11:14:05 | 显示全部楼层
你什么系统我不管,怎么简单怎么来,前人栽树后人乘凉,之所以有人要开发这样的第三方,就是为了实用,这样的问题如果不用正则表达式处理,只能使用笨方法
 楼主| 发表于 2016-9-2 11:16:04 | 显示全部楼层
回复 4# wskwfkbdn


    问题就是没用过ren2
发表于 2016-9-2 11:27:49 | 显示全部楼层
回复 5# wpy4206


    论坛搜索
发表于 2016-9-2 12:01:35 | 显示全部楼层
  1. powershell -c "dir|?{$_.PSIsContainer}|%%{ren $_ -NewName $($_.Name -replace '[\u4E00-\u9FA5]','')}"
  2. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2016-9-2 12:02:09 | 显示全部楼层
本帖最后由 pcl_test 于 2017-5-29 21:14 编辑
  1. /*&cls
  2. @echo off
  3. rem dir /ad/b/s则可处理子文件夹
  4. (dir /ad/b^|sort /r)|cscript -nologo -e:jscript "%~f0"
  5. pause&exit
  6. */

  7. var fso = new ActiveXObject('Scripting.Filesystemobject');
  8. while(!WSH.StdIn.AtEndOfStream){
  9.     var line = WSH.StdIn.ReadLine();
  10.     var folder = fso.GetFolder(line);
  11.     var fpath = fso.GetParentFolderName(line);
  12.     var newname = folder.Name.replace(/[\u4E00-\u9FA5]/g,'');
  13.     var newfolder = fpath?fpath+'\\'+newname:newname;
  14.     if(newname&&!fso.FolderExists(newfolder))folder.Name=newname;
  15. }
  16. WSH.Echo('Done');
复制代码
发表于 2016-9-2 12:11:14 | 显示全部楼层
ren2第三方,地址http://batch-cn.qiniudn.com/tool/ren2.exe
  1. ren2 "([0-9、]+)[^0-9\.]+" "$1"
复制代码
回复 3# wpy4206
发表于 2016-9-2 12:26:29 | 显示全部楼层
纯批思路:tokens=* delims=0123456789 … echo !str:%%a=!
发表于 2016-9-2 12:40:00 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /ad ^| findstr "^[0-9]"') do (
  4.     set "str=%%i"
  5.     for /f "tokens=* delims=0123456789、" %%j in ("%%i") do (
  6.         if "%%j" neq "" (
  7.             ren "%%i" "!str:%%j=!"
  8.         )
  9.     )
  10. )
复制代码

评分

参与人数 2技术 +2 收起 理由
taofan712 + 1 感谢分享
Batcher + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 10:44 , Processed in 0.019800 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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