use*_*184 0 sorting batch-file line
我想制作脚本,该脚本在文件example.txt中按长度对所有行进行排序(某些行包含空格)。最长的一行将是第一行,最短的一行将在文档的末尾。脚本可以重写原始文档。谢谢 :-)
通过将每一行作为其自己的文件写入一个临时文件夹中,可以轻松而快速地完成此任务。然后使用DIR / B / OS按大小对文件(行)进行排序,使用FOR / F捕获结果,然后使用TYPE打印每个文件(行)。
@echo off
setlocal disableDelayedExpansion
set "file=example.txt"
set "tempLoc=sortLinesTemp"
md "%tempLoc%"
set "cnt=0"
for /f usebackq^ delims^=^ eol^= %%A in ("%file%") do (
set /a cnt+=1
set "ln=%%A"
setlocal enableDelayedExpansion
echo(!ln!>"%tempLoc%\f!cnt!"
endlocal
)
(for /f %%F in ('dir /b /o-s "%tempLoc%"') do type "%tempLoc%\%%F")>"%file%.new"
move /y "%file%.new" "%file%" >nul
rd /s /q "%tempLoc%"
type "%file%"
Run Code Online (Sandbox Code Playgroud)
此解决方案将删除空行。空行可以保留更多代码。
此外,行长限制为少于8191个字符。此限制对于任何纯本地批处理解决方案都是固有的。
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |