Board logo

标题: 批处理中数组的疑问, [打印本页]

作者: jiataifeng     时间: 2007-11-8 16:32    标题: 批处理中数组的疑问,

@echo off
setlocal enabledelayedexpansion
    set number1=%random% %random% %random% %random% %random%
    set number2=%random% %random% %random% %random% %random%
    echo 输出number1的第m(令m=4)个分量:?     输出number2的第n(令n=3)分量: ?
pause
goto :eof


==========================
主要是想同时输出两个数组的指定分量,怎么做到呢?谢谢阅读~
作者: abcd     时间: 2007-11-8 16:47
@echo off
setlocal enabledelayedexpansion
set /p num1=请输入:
set /p num2=请输入:
set num=0
    set number1=%random% %random% %random% %random% %random%
    set number2=%random% %random% %random% %random% %random%
   for %%i in (%number1%) do (
       set /a num+=1
       if !num!==%num1% set /p=%%i <nul
   )
   set num=0
   for %%i in (%number2%) do (
       set /a num+=1
       if !num!==%num2% set /p=%%i <nul
   )
pause
goto :eof
作者: abcd     时间: 2007-11-8 16:53

@echo off
setlocal enabledelayedexpansion
set /p num1=请输入:
set /p num2=请输入:
set num=0
    set number1=%random% %random% %random% %random% %random%
    set number2=%random% %random% %random% %random% %random%
    call :js "%number1%" "%num1%"
    call :js "%number2%" "%num2%"
pause
goto :eof

:js
set num=0
for %%i in (%~1) do (
   set /a num+=1
   if !num!==%~2 set /p=%%i <nul
)

作者: jiataifeng     时间: 2007-11-8 16:56
谢谢你能给我回复,你的方法在输出时非常有效。
同时我想问一下,当这两个数组的两个指定分量为另一函数或命令的参数时,有没有办法呢,如果碰到,能否回避呢。
总之,谢谢啦~
作者: jiataifeng     时间: 2007-11-8 16:58
谢谢,祝你每天有个好心情~
作者: abcd     时间: 2007-11-8 17:01


  Quote:
Originally posted by jiataifeng at 2007-11-8 04:56 PM:

同时我想问一下,当这两个数组的两个指定分量为另一函数或命令的参数时,有没有办法呢,如果碰到,能否回避呢。

没理解
作者: jiataifeng     时间: 2007-11-8 17:11
举个例子,比如绑定arp的命令
arp -s IP地址 物理地址
IP地址和物理地址分别在两个数组中
作者: abcd     时间: 2007-11-8 17:19
可以啊,把输出改为赋值就行了。
作者: jiataifeng     时间: 2007-11-8 17:47
谢谢,很不错~
作者: grewrabbit     时间: 2007-12-1 09:25


  Quote:
Originally posted by abcd at 2007-11-8 05:19 PM:
可以啊,把输出改为赋值就行了。

几个问题:
1)如何对数组中的某一个元素进行赋值?请具体写出示例代码吧!
2)上面贴子中的代码,给出了如何定义固定长度数组的方法,是不是可以(如何)定义可变的数组?
3)数组的最大长度有限制吗?