我试图在脚本的开头创建文件夹,而后记则在其中创建文件。为了创建路径,我使用md -Force $path
,我也仅用于测试类似的方法
if(![System.IO.Directory]::Exists($path)){
[System.IO.Directory]::CreateDirectory($path)
}
创建路径后,我想构建文件名+我要写入的文件的路径,我使用了两种方法:
Join-Path $path "myfile.txt"
这导致结果是我得到一个字符串数组作为结果,带有两个记录,两个记录都建立相同的路径
$path\myfile.txt
也使用[System.IO.Path]::Combine($path, "myfile.txt")
返回具有两个记录的相同字符串数组(即使Combine方法仅具有返回字符串的定义)
仅当我之前创建文件夹时,才会出现此现象,所以我想知道是什么原因导致这些结果以及如何避免它们。
我的安装程序是带有Win7的Powershell 3(客户“希望”)。
最佳答案
您的变量$path
包含一个数组。
PS C:\> $path = 'C:\Temp'
PS C:\> $res = Join-Path $path 'file.txt'
PS C:\> $res.GetType().FullName
System.String
PS C:\> $res
C:\Temp\file.txt
PS C:\> $path = 'C:\Temp', 'C:\Windows'
PS C:\> $res = Join-Path $path 'file.txt'
PS C:\> $res.GetType().FullName
System.Object[]
PS C:\> $res
C:\Temp\file.txt
C:\Windows\file.txt
关于arrays - Powershell连接路径返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724984/