0

我需要在文件夹中创建子目录C:\projects。我正在使用 get-content -Raw 读取输入文件以将文件转换为字符串,然后在换行符处拆分字符串。但是当我将字符串传递给 New-Item 时,它会显示“路径中的非法字符”。我什至使用 trim() 来修剪空格或换行符,但我得到了同样的错误。

$inputTxt = Get-Content "c:\input.txt" -Raw 
[string[]]$input = $inputTxt.split("`n")
$combinePath = "c:\projects"+ "\" + $input[$i]

New-Item $combinePath -type directory 

或者,我只是使用 get-content 将输入文件直接读入数组,但没有 -Raw 参数,该参数在换行符上拆分,但是当文件中只有 1 个输入时会出现问题,然后它会根据字符拆分字符串换行符。

4

1 回答 1

0

你不需要使用-Raw. 的默认行为Get-Content是给你一个行数组。您只需要过滤空行和带有非法路径字符的行,例如:

$inputTxt = Get-Content C:\input.txt | Where {$_.Trim().Length -gt 0}
$inputTxt -replace '[<>|"]','' | Foreach {New-Item (Join-Path c:\projects $_) -type directory}

这不是无效字符的完整列表,但应该让您朝着正确的方向前进。

于 2013-11-04T16:54:42.173 回答