Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在批处理脚本中将数组作为参数传递_Arrays_Batch File_Arguments - Fatal编程技术网

Arrays 在批处理脚本中将数组作为参数传递

Arrays 在批处理脚本中将数组作为参数传递,arrays,batch-file,arguments,Arrays,Batch File,Arguments,我在批处理脚本中创建了一个数组,如下所示: set arr[1]=a set arr[2]=b set arr[3]=c 现在我想把这个数组作为参数传递给另一个批处理文件 详情如下: call :processArr.bat arr 我需要这样做,因为在实际情况下,arr[%%I]中%%I的值是可变的,它可以大于9,对于批处理文件,只能传递9个参数 此外,至关重要的是,整个数组立即传递给批处理文件processArr.bat 请帮助无需将变量作为脚本参数传递。调用processArr.bat

我在批处理脚本中创建了一个数组,如下所示:

set arr[1]=a
set arr[2]=b
set arr[3]=c
现在我想把这个数组作为参数传递给另一个批处理文件 详情如下:

call :processArr.bat arr
我需要这样做,因为在实际情况下,arr[%%I]中%%I的值是可变的,它可以大于9,对于批处理文件,只能传递9个参数

此外,至关重要的是,整个数组立即传递给批处理文件processArr.bat


请帮助

无需将变量作为脚本参数传递。调用processArr.bat时,processArr.bat将继承调用脚本定义的所有变量。下面是一个演示:

测试。蝙蝠:

@echo off&setlocal

对于(0,1,5)中的/L%%I,设置/a“arr[%%I]=%%I您不限于传递9个参数。您可以使用shift命令访问其他参数。并且在
调用processArr.bat args
中去掉冒号。冒号用于调用同一脚本中的标签,而不是执行外部脚本。OMG!我想知道如果你们这样做,对我这样的noob编程会发生什么没有!thnx关于这一点还有一个问题,如果出于安全原因,我将这两个批处理文件都转换为.exe,那么变量继承是否仍然有效???@Abhi将.bat脚本包装到.exe中对我来说并不安全。只要运行.exe,封装的.bat脚本就会被提取到%temp%,并且可以被任何人。至于继承是否仍然存在,我不能说。只要尝试一下,看看我的猜测。好的。那么来自%temp%dir的批处理文件就是实际运行的批处理文件吗?基本上,我的脚本将用户的输入作为用户名和密码,并执行一些涉及另外两个批处理文件的活动,我“启动xyz.bat(.exe,以防转换)“从主批处理脚本。我的意图是,一旦主批处理文件启动,任何人都不能试图通过编辑其他批处理文件来使用echo在屏幕上显示密码。有没有更好的方法来防止知道密码?你可以使用盐哈希而不是纯文本密码。举个例子。这仍然是微不足道的安全性,但至少比处理纯文本密码稍微好一些。