Board logo

标题: [文件操作] 求助批处理①汉字转指定拼音②在文件名前加升序序号 [打印本页]

作者: xiyuan5905    时间: 2018-11-3 21:47     标题: 求助批处理①汉字转指定拼音②在文件名前加升序序号

有两个问题想求助大家:
问题一、我原本有如下几个文件夹,原名字为箭头前的中文,想转成箭头后指定的非中文的文件名:
喝水→0_drinkwater
摄像头掰向其他地方→1_camera_error
异常1→1_camera_error1
座位没人→2_nobody
打电话→3_phonecall
抽烟→4_smoke
正常1→5_normal
正常3→5_normal_houshijing
异常2→6_zgyp
正常2→6_zgyp_zuoyouhoushijing
打哈欠→7_dahaqian
打盹→8_sleep
设备遮挡→9_zhedang
俯身→bendover
玩手机→playphone

问题二、现有大量数字乱序,并以“.jpeg"为结尾的文件,
在文件夹里顺序如
xxx599.jpeg
xxx600.jpeg
xxx1.jpeg
xxx2.jpeg
想不改变文件本身在文件夹的顺序,前前面加上升序序号,如:
1_xxx599.jpeg
2_xxx600.jpeg
3_xxx1.jpeg
4_xxx2.jpeg

望大佬赐教!! 在此感谢!!
作者: xp3000    时间: 2018-11-4 13:04

将上面文本保存为列表.txt放入需要处理的文件夹.
  1. /*&cls
  2. @echo off
  3. setlocal EnableDelayedExpansion
  4. for /f "delims=" %%a in ('type 列表.txt^|cscript -nologo -e:jscript "%~f0"') do (
  5. ren %%a
  6. )
  7. pause&exit
  8. */
  9. var t='', map={}, files = WScript.StdIn.ReadAll().split('\r\n');
  10. for (var i=0; i<files.length; i++){
  11.     var str = files[i].replace(/(.+)→(.+)$/,'"$1" "$2"')
  12.     if(!map[str]){map[str] = true;t+=str+'\r\n';}
  13. }
  14. WSH.echo(t);
复制代码
根据时间先后顺序排列+1重命名jpeg
  1. @echo off&setlocal enabledelayedexpansion
  2. set a=1
  3. for /f "delims=" %%a in ('dir /b/a-d/oD *.jpeg') do (
  4. ren %%~nxa !a!_%%~nxa
  5. set/a a+=1
  6. )
  7. pause
复制代码
第一个如果内容整行的就是文件夹名称,下载ren2执行
  1. ren2 -f ".*→(.*)" "$1"
复制代码
  1. @echo off
  2. for /f "tokens=1-2 delims=→" %%a in ('dir /ad /o-d /b "*"') do ren "%%a→%%b" "%%b"
  3. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2