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
Iis 导入CSV foreach循环进程_Iis_Powershell_Foreach - Fatal编程技术网

Iis 导入CSV foreach循环进程

Iis 导入CSV foreach循环进程,iis,powershell,foreach,Iis,Powershell,Foreach,我正在处理一个问题,但语法似乎不正确 我有一个目录,其中包含一系列csv文件,每个文件都包含一个虚拟目录列表和来自旧IIS6机器的路径。我正在一台新的IIS7.5机器上重新创建它们,通过转到目录“iis:\sites\Atlanta”并运行此命令,我可以一次将它们添加到一个目录中 Import-Csv C:\Users\MIGXHZ700\Desktop\Atlanta.csv | Where-Object {$_.Path -match "\\"} | ForEach-Object {New-

我正在处理一个问题,但语法似乎不正确

我有一个目录,其中包含一系列csv文件,每个文件都包含一个虚拟目录列表和来自旧IIS6机器的路径。我正在一台新的IIS7.5机器上重新创建它们,通过转到目录“iis:\sites\Atlanta”并运行此命令,我可以一次将它们添加到一个目录中

Import-Csv C:\Users\MIGXHZ700\Desktop\Atlanta.csv | Where-Object {$_.Path -match "\\"} | ForEach-Object {New-Item $_.Name -Type VirtualDirectory -physicalPath $_.Path}
就我个人而言,我无法在脚本中使用正确的语法来运行它。我认为这只是连接的问题,但我不是100%确定。这就是我的剧本

$dirs = ls C:\Users\[blah]\Desktop\*.csv | foreach-object {
    Import-Csv $_ | 
    Where-Object {$_.Path -match "\\"} |
    ForEach-Object {New-Item 'IIS:\Sites\'+$_.Name -Type VirtualDirectory -physicalPath $_.Path}
}
在Foreach内部执行Foreach可能也是一个问题


提前感谢您的帮助。

'IIS:\Sites\'+$\uName
不是新项目的有效参数,因为-Path参数采用字符串参数,但这是一个表达式。它是一个表达式,计算结果为一个字符串,表示要创建的项的路径,但需要将其括在括号中进行计算:

New-Item ('IIS:\Sites\' + $_.Name) -Type VirtualDirectory -PhysicalPath $_.Path

顺便问一下,你对$dirs的打算是什么?它将被分配New Item命令的输出,这将是一个DirectoryInfo对象数组(与创建所有这些目录后从
$dirs=get ChildItem IIS:\Sites\
获得的结果相同)。这就是你想要的吗?

你能发布一个CSV文件的副本吗?只需前五行或六行就可以了。是的,我将使用$dirs来做一些超出本文范围的事情。