以下是版主3742668写的有关排序的批处理,小的新手,有些看不明白,望指点。
-------------------------------------------------------
@echo off
setlocal enabledelayedexpansion
set numbers=%random% %random% %random% %random% %random% %random% %random% %random%
echo 排序前数组为: %numbers%
call :sort %numbers%
echo 排序后数组为: %ret%
pause
goto :eof
:sort
set num=%1
set str=%*
for %%i in (%*) do if !num! gtr %%i set num=%%i
set ret=%ret% %num%
if not "!str:%num%=!" == "" call :sort !str:%num%=!
goto :eof
--------------------------------------------------
1、set num=%1这一句为什么只是把%1的头一个数字传给num;
比如%numbers%为:12 23 24 23 25 23 20 10
但是set num=%1却变成12呢?
2、%*是什么意思
──────────────── 版务记录 ────────────────
执行:namejm
原标题:求助!
现标题:call调用标签段时的参数传递该如何理解?
说明:因原标题过于模糊,不便于论坛的搜索和管理,在本提示发表三日之后,
楼主尚未更改标题,现由本人强制修改标题,并扣除楼主4点积分。
──────────────── 版务记录 ────────────────
[ Last edited by namejm on 2006-10-19 at 00:57 ]
-------------------------------------------------------
@echo off
setlocal enabledelayedexpansion
set numbers=%random% %random% %random% %random% %random% %random% %random% %random%
echo 排序前数组为: %numbers%
call :sort %numbers%
echo 排序后数组为: %ret%
pause
goto :eof
:sort
set num=%1
set str=%*
for %%i in (%*) do if !num! gtr %%i set num=%%i
set ret=%ret% %num%
if not "!str:%num%=!" == "" call :sort !str:%num%=!
goto :eof
--------------------------------------------------
1、set num=%1这一句为什么只是把%1的头一个数字传给num;
比如%numbers%为:12 23 24 23 25 23 20 10
但是set num=%1却变成12呢?
2、%*是什么意思
──────────────── 版务记录 ────────────────
执行:namejm
原标题:求助!
现标题:call调用标签段时的参数传递该如何理解?
说明:因原标题过于模糊,不便于论坛的搜索和管理,在本提示发表三日之后,
楼主尚未更改标题,现由本人强制修改标题,并扣除楼主4点积分。
──────────────── 版务记录 ────────────────
[ Last edited by namejm on 2006-10-19 at 00:57 ]
