China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-07-21 22:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » A character sorting problem for newbies (bonus question) View 2,380 Replies 21
Floor 16 Posted 2008-05-21 17:09 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
Credits 3,105
Posts 1,276
Joined 2008-03-08 13:00
18-year member
UID 112398
Gender Male
Status Offline
Brothers might as well write it out and have a look.
批处理之家新域名:www.bathome.net
Floor 17 Posted 2008-05-21 17:38 ·  中国 山东 淄博 联通
银牌会员
★★★
Credits 1,604
Posts 646
Joined 2008-04-13 23:39
18-year member
UID 115804
Gender Male
Status Offline
@echo off&setlocal enabledelayedexpansion
set "str=13 z 113 -3 778 10004 f k a 119 -101 8 -19 m"
for %%a in (%str%) do (
if %%a lss a (
set "var=!var!%%a "
set str=!str: %%a=!
)
)
for %%a in (%var%) do (
set str1=0000000000%%a
set .!str1:~-10!=a
)
for /f "delims=.=" %%i in ('set .') do (
for /f "tokens=* delims=0" %%a in ("%%i") do set/p= %%a<nul&set %%a=A
)
for %%a in (%str%) do (
if not defined %%a (
set str2=0000000000%%a
set #!str2:~-10!=a
)
)
for /f "delims==#" %%i in ('set #') do (
for /f "tokens=* delims=0" %%a in ("%%i") do set/p= %%a<nul
)


It's very cumbersome, and can only be done to this extent. Completely copied~ - -||
Recent Ratings for This Post ( 1 in total) Click for details
RaterScoreTime
bat-zw +15 2008-05-21 18:24
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
Floor 18 Posted 2008-05-21 18:25 ·  中国 湖北 武汉 电信
初级用户
Credits 97
Posts 33
Joined 2007-03-05 06:13
19-year member
UID 80815
Gender Male
Status Offline
for /f "tokens=1-14" %%a in ("13 z 113 -3 778 10004 f k a 119 -101 8 -19 m") do echo %%k %%m %%d %%l %%a %%c %%j %%e %%f %%i %%g %%h %%n %%b
pause

pause
The most stupid, simplest method
Just format it...
Haha, don't scold me

[ Last edited by qdloverr on 2008-5-21 at 06:27 PM ]
Floor 19 Posted 2008-05-21 18:25 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
Credits 3,105
Posts 1,276
Joined 2008-03-08 13:00
18-year member
UID 112398
Gender Male
Status Offline
批处理之家新域名:www.bathome.net
Floor 20 Posted 2008-05-21 18:30 ·  中国 山东 淄博 联通
银牌会员
★★★
Credits 1,604
Posts 646
Joined 2008-04-13 23:39
18-year member
UID 115804
Gender Male
Status Offline
Originally posted by zw19750516 at 2008-5-21 06:25 PM:
Add points to encourage.

Senior, you added points by mistake! I already said it's plagiarized~ There was such a previous post about sorting, it seems it was from senior terse~
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
Floor 21 Posted 2009-01-01 06:51 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
@echo off&setlocal enabledelayedexpansion

set str= 13 z 113 -3 778 10004 f k a 119 -101 8 -19 m

for %%a in (%str%) do (
if %%a lss 999999 set cc=/%%a
if %%a lss 99999 set cc=//%%a
if %%a lss 9999 set cc=//%%a
if %%a lss 999 set cc=///%%a
if %%a lss 99 set cc=////%%a
if %%a lss 9 set cc=/////%%a
if %%a lss 1 set cc=/%%a
if not %%a lss 999999 set cc=/%%a
set bb!cc!=1
)

FOR /f "tokens=1 delims= " %%i IN ('SET bb ^| SORT /r') DO (
SET abc=%%i
SET abc=!abc:*/=!
SET abc=!abc:/=!
SET abc=!abc:~0,-2!
set ok=!abc! !ok!
)
echo. & echo Original array: !str! & echo Sorted output: !ok!

pause
精简
=> 个人网志
Floor 22 Posted 2009-01-02 00:07 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
```batch
@echo off&setlocal enabledelayedexpansion

set str= 13 z 113 -3 778 10004 f k a 119 -101 8 -19 m

for %%a in (!str!) do (

if %%a geq a (set cc=/%%a) else set cc=///////////%%a
set cc=!cc:~-10!
set bb!cc!=1
)

FOR /f "tokens=1 delims= " %%i IN ('SET bb') DO (
SET abc=%%i
SET abc=!abc:*/=!
SET abc=!abc:/=!
SET abc=!abc:~0,-2!
set ok=!ok! !abc!
)
echo. & echo Original array: !str! & echo Sorted output: !ok!

pause
```
Forum Jump: