Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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
Powershell 在循环中使用新变量的问题_Powershell - Fatal编程技术网

Powershell 在循环中使用新变量的问题

Powershell 在循环中使用新变量的问题,powershell,Powershell,所以,我有一个有趣的问题,我没有运气解决。我需要创建一组动态数组变量 代码: 结果: $arr1 (1,2,3) ... (4,5,6) ... (7,8,9) 我有一个变量$temp,它包含一个分号分隔的列表,其中列出了我要创建的变量/值。正如您在上面看到的,我正在使用新的变量来创建它。有趣的是,当我从一个脚本运行这个函数时,新的变量对第一次调用有效,但对数组中的所有其他变量都会得到“…”。你知道是什么原因吗?正如安迪在评论中指出的那样,你不是在创建一个分号分隔的列表,而是在创建几个

所以,我有一个有趣的问题,我没有运气解决。我需要创建一组动态数组变量

代码:

结果:

$arr1 (1,2,3)
...   (4,5,6)
...   (7,8,9)

我有一个变量$temp,它包含一个分号分隔的列表,其中列出了我要创建的变量/值。正如您在上面看到的,我正在使用新的变量来创建它。有趣的是,当我从一个脚本运行这个函数时,新的变量对第一次调用有效,但对数组中的所有其他变量都会得到“…”。你知道是什么原因吗?

正如安迪在评论中指出的那样,你不是在创建一个分号分隔的列表,而是在创建几个名为
$arr1
$arr2
,等等的变量。
$temp
只是指
$arr1

修复代码的一种方法是

$temp = 'arr1=(1,2,3);arr2=(4,5,6);...'
请注意,对于
新变量
,不能在
$
符号前加前缀。变量名为
arr1
,即使您在代码中将其称为
$arr1
(gv arr1).Value
或其他名称

但在PowerShell中编写代码的方式真的很奇怪。你只是没有提供足够的细节让我们知道你在做什么

你也可以这样做

$arr1 = '(1,2,3)'
$arr2 = '(4,5,6)'
...

不知道为什么会发生这种情况,但当我拆分字符串时,数组中出现了一些随机的ascii字符。能够看到这一点,多亏了PowerGUI!!!解决方法是在使用之前修剪绳子。(即$var[0].Trim())

$temp=$arr1=(1,2,3)$arr2=(4,5,6)。是临时字符串吗?第一行不是分号分隔的列表。它将1,2,3存储在$temp中,并使用4,5,6创建$arr2,但仅此而已。请编辑您的问题以修正语法。这将有助于了解您的场景是什么,而不是您试图解决它的方式。看看你做这件事的方式——你可能做错了……)你的数据中到底什么是“动态的”以及最终结果应该是什么——回答这两个问题将帮助其他人找到解决方案或将你推向正确的方向……对不起,我昨晚很快提出了这个问题。谢谢你的帮助,但我已经解决了这个问题。我从配置文件中提取这个字符串,当我拆分字符串时,插入了一些随机字符。我通过修剪$var[0]修复了此问题。对不起,我昨晚很快就把它挂起来了。谢谢你的帮助,但我已经解决了这个问题。我从配置文件中提取这个字符串,当我拆分字符串时,插入了一些随机字符。我通过修剪$var[0]修复了这个问题。
$arr1 = '(1,2,3)'
$arr2 = '(4,5,6)'
...