标题: [文件操作] 【已解决】批处理如何删除文件夹名中的中文/汉字 [打印本页]
作者: wpy4206 时间: 2016-9-2 10:49 标题: 【已解决】批处理如何删除文件夹名中的中文/汉字
如题
批处理如何获取文件夹名并删除特定的字符或者字符串(指 汉字)后重命名文件夹,不改变文件夹的路径。
汉字部分的获取并删除,汉字部分长度随机
见8楼
作者: wskwfkbdn 时间: 2016-9-2 11:01
ren2应该可以的
作者: wpy4206 时间: 2016-9-2 11:06
回复 2# wskwfkbdn
不用第三方,来一发。我是win10系统
作者: wskwfkbdn 时间: 2016-9-2 11:14
你什么系统我不管,怎么简单怎么来,前人栽树后人乘凉,之所以有人要开发这样的第三方,就是为了实用,这样的问题如果不用正则表达式处理,只能使用笨方法
作者: wpy4206 时间: 2016-9-2 11:16
回复 4# wskwfkbdn
问题就是没用过ren2
作者: wskwfkbdn 时间: 2016-9-2 11:27
回复 5# wpy4206
论坛搜索
作者: pcl_test 时间: 2016-9-2 12:01
- powershell -c "dir|?{$_.PSIsContainer}|%%{ren $_ -NewName $($_.Name -replace '[\u4E00-\u9FA5]','')}"
- pause
复制代码
作者: pcl_test 时间: 2016-9-2 12:02
本帖最后由 pcl_test 于 2017-5-29 21:14 编辑
- /*&cls
- @echo off
- rem dir /ad/b/s则可处理子文件夹
- (dir /ad/b^|sort /r)|cscript -nologo -e:jscript "%~f0"
- pause&exit
- */
-
- var fso = new ActiveXObject('Scripting.Filesystemobject');
- while(!WSH.StdIn.AtEndOfStream){
- var line = WSH.StdIn.ReadLine();
- var folder = fso.GetFolder(line);
- var fpath = fso.GetParentFolderName(line);
- var newname = folder.Name.replace(/[\u4E00-\u9FA5]/g,'');
- var newfolder = fpath?fpath+'\\'+newname:newname;
- if(newname&&!fso.FolderExists(newfolder))folder.Name=newname;
- }
- WSH.Echo('Done');
复制代码
作者: happy886rr 时间: 2016-9-2 12:11
ren2第三方,地址http://batch-cn.qiniudn.com/tool/ren2.exe- ren2 "([0-9、]+)[^0-9\.]+" "$1"
复制代码
回复 3# wpy4206
作者: CrLf 时间: 2016-9-2 12:26
纯批思路:tokens=* delims=0123456789 … echo !str:%%a=!
作者: GNU 时间: 2016-9-2 12:40
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /ad ^| findstr "^[0-9]"') do (
- set "str=%%i"
- for /f "tokens=* delims=0123456789、" %%j in ("%%i") do (
- if "%%j" neq "" (
- ren "%%i" "!str:%%j=!"
- )
- )
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |