回复 4# dzwind
在强力脚本中是现成工具,回到批处理脚本中很可能要自力更生...玩弄古刀老枪也成了一套日常的脑力操
如下代码说明》
第5行设置的6点英文省略号,其类型可调整
第9行设置了3种空白字符:英文空格/中文空格/制表符,可随需删减- @echo off &setlocal enabledelayedexpansion
- for /f "delims=" %%F in ('dir/s/b/a-d *.txt') do (
- set/a "pm=1,qm=1"
- (for /f "usebackq delims=" %%a in ("%%~F") do (
- set "s=%%a"&set "s=!s:......=…!"&set "_s=!s!"
- for %%n in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
- if "!_s:~%%n,1!" neq "" (set/a "ls+=%%n"&set "_s=!_s:~%%n!")
- )
- for /L %%n in (1,1,!ls!) do for %%c in (" ", " ", " ") do if "%%~c"=="!s:~,1!" (
- set "s=!s:~1!"&set/a "ls-=1")
- for /L %%n in (0,1,!ls!) do (
- set "c=!s:~%%n,1!" & if ^!c! == ^" (
- set/a "pm=0-!pm!" &if !pm! equ -1 (set "c=“") else (set "c=”")
- ) else if "!c!" == "'" (set/a "qm=0-!qm!" &if !qm! equ -1 (set "c=‘") else (set "c=’"))
- set "_line=!_line!!c!"
- )
- echo,!_line!&set "_line="&set "ls=0"
- ))>"%%~F.new"
- )
- endlocal&exit/b
复制代码
|