我正在嘗試創建一個名稱已存在的目錄。這些名稱保存爲在創建目錄時遇到問題
$targetfolders[1] = "ABC"
$targetfolders[2] = "DEF"
$targetfolders[3] = "GHI"
New-Item c:\$targetfolders[1]\$targetfolders[2]\$targetfolders[3] -type directory
它不起作用。
我正在嘗試創建一個名稱已存在的目錄。這些名稱保存爲在創建目錄時遇到問題
$targetfolders[1] = "ABC"
$targetfolders[2] = "DEF"
$targetfolders[3] = "GHI"
New-Item c:\$targetfolders[1]\$targetfolders[2]\$targetfolders[3] -type directory
它不起作用。
我建議把完整路徑到第二個變量和使用,就像這樣:如果你正在使用PowerShell的
$fullpath = "C:\"+($targetfolders)[1]+"\"+($targetfolders)[2]+"\"+($targetfolders)[3]
New-Item $fullpath -Type Directory
3.0+(因此.NET 4.0+):
New-Item [System.IO.Path]::Combine(@("C:\") + $targetFolders) -Type Directory
否則,
$path = "C:\"; $targetFolders | % { $path = Join-Path $path $_ }
New-Item $path -Type Directory
你的錯誤,雖然是你沒有把你的路徑字符串,
"c:\$($targetfolders[1])\$($targetfolders[2])\$($targetfolders[3])"
$()
在一個字符串裏面會評估裏面的內容並替換它。變量替換也可以(但不是數組):
"c:\$folder1\$folder2\$folder3"
在一個陣列文件夾的名稱,你可以使用format operator建設的路徑:
$targetfolders = 'ABC', 'DEF', 'GHI'
$path = 'c:\{0}\{1}\{2}' -f $targetfolders
New-Item -Type Directory -Path $path
如果您有其他元素您可以通過調整格式字符串中的索引來掩蓋它們:
$targetfolders = 'foo', 'ABC', 'DEF', 'bar', 'GHI'
$path = 'c:\{1}\{2}\{4}' -f $targetfolders
New-Item -Type Directory -Path $path