如何拼接路径和文件名以进行创建和删除

7

我正在尝试以下操作。

$woohoo = "c:\temp\shabang"
New-Item -ItemType File $woohoo

这会在指定位置创建一个文件。然而,我想要将$woo$hoo分开,并采用以下方式。
$woo = "c:\temp"
$hoo = "shabang"
New-Item -ItemType File ($woo + $hoo)

这个方法不起作用,我需要提示如何让它起作用。这些建议 (此建议)(此处) 在应用到我的情况时都没有奏效。显然,给定的路径格式不受支持。
有什么建议吗?
编辑
它看起来是这样的: enter image description here 编辑2 $ woo =“ c:\ temp” ; $ hoo =“ shabang” ; New-Item -ItemType File (Join-Path $ woo $ hoo)
2个回答

15

执行$woo + $hoo不能返回正确的文件路径:

PS > $woo = "c:\temp"
PS > $hoo = "shabang"
PS > $woo + $hoo
c:\tempshabang
PS >

相反,您应该使用 Join-Path 命令来连接 $woo$hoo

New-Item -ItemType File (Join-Path $woo $hoo)

请参见下面的演示:

PS > $woo = "c:\temp"
PS > $hoo = "shabang"
PS > Join-Path $woo $hoo
c:\temp\shabang
PS >

似乎还有其他问题。我运行了完全相同的代码(new-item...),但出现了“路径格式不支持”的错误。请看我的编辑以确认我没有说谎。 :) - Konrad Viltersten
你需要复制并粘贴你正在运行的确切代码和确切的错误信息。 - Bill_Stewart
@Bill_Stewart 复制到哪里?这里吗?请查看编辑(15秒内)。 - Konrad Viltersten
@Bill_Stewart 哈!找到问题了!目录需要完整存在。然后它就可以工作了!没有非法字符 - 只是目录没有被创建。 - Konrad Viltersten

2
$path=Get-Location 
$file="myfile.json"
$path=Join-Path $path $file

#you can cast to a class if the class definition is known
$results = (Get-Content -Path $path  | Out-String | ConvertFrom-Json)

foreach($tempObj in $results)
{
   $obj_vals=$tempObj|Select-Object -Property *
   Write-Host $obj_vals  -ForegroundColor Green
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接