Gab*_*bil 3 windows vbscript batch-file
我有一个文本文件,其中包含以下数据:
12,abcd
2541,sdfrhk
4,qwerty
13,yytrew
345,iuoiyt
如何按数字降序对内容进行排序?最好使用批处理。谢谢
您无法直接对其进行排序。我能想到的唯一批处理解决方案是解析并重新创建每行,这些行的前缀为零,以固定宽度表示。一旦数字具有固定的宽度,就可以使用SORT创建新的排序文件,然后再使用FOR / F删除前导零。
我假设15位数字足以容纳最大的数字。此解决方案假定所有数字都是大于0的整数。
@echo off
set "file=test.txt"
>"%file%.new1" (
for /f "usebackq tokens=1* delims=," %%A in ("%file%") do (
set "n=000000000000000%%A"
set "str=%%B"
setlocal enableDelayedExpansion
echo !n:~-15!,!str!
endlocal
)
)
>"%file%.new2" sort /r "%file%.new1"
>"%file%" (
for /f "usebackq tokens=* delims=0" %%A in ("%file%.new2") do echo %%A
)
del "%file%.new?"
Run Code Online (Sandbox Code Playgroud)
如果原始文件中的值为0,则必须在最后一步中完成其他工作。如果允许使用负数,则必须在整个脚本中完成更多工作。
您可以使用VBScript或JavaScript编写效率更高的脚本。
| 归档时间: |
|
| 查看次数: |
1858 次 |
| 最近记录: |