Powershell - 读取输入文件并添加目录

时间:2013-11-04 16:43:37

标签: powershell file-io

我需要在文件夹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个输入时会出现问题,然后根据它分割字符串字符而不是换行符。

1 个答案:

答案 0 :(得分:0)

您无需使用-RawGet-Content的默认行为是为您提供一系列行。您只需要使用非法路径字符过滤空行和行:例如:

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

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