我对于相同的powershell命令有所不同,我不知道为什么。
当它在一个函数中运行时,我得到输出1,当我自己运行时,我得到output2
New-Item -Path C:\DEPL\nichdwww\deployments\Full\bob3 -type directory
输出1
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\DEPL\nichdwww\deployments\Full\bob3
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\DEPL\nichdwww\deployments\Full
PSChildName : bob3
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : True
Name : bob3
Parent : Full
Exists : True
Root : C:\
FullName : C:\DEPL\nichdwww\deployments\Full\bob3
Extension :
CreationTime : 6/23/2015 2:14:39 PM
CreationTimeUtc : 6/23/2015 6:14:39 PM
LastAccessTime : 6/23/2015 2:14:39 PM
LastAccessTimeUtc : 6/23/2015 6:14:39 PM
LastWriteTime : 6/23/2015 2:14:39 PM
LastWriteTimeUtc : 6/23/2015 6:14:39 PM
Attributes : Directory
BaseName : bob3
Mode : d----
输出2
Directory: C:\DEPL\nichdwww\deployments\Full
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 6/23/2015 2:45 PM bob3
这是函数
function ArchiveFullSolution($wsp)
{
$ParentPath=Split-Path $wsp.DirectoryName -Parent
$FullPath=$ParentPath+'\Full\'
$Fullfilename=$FullPath+$wsp.Name
#$Fullfilename
#does file exist
if(Test-Path -path $Fullfilename)
{
#Make Full Archive folder
#$script:Makefolder
if($script:Makefolder)
{
#does folder exists
$DayFormat=Get-Date -f yyyy-MM-dd
if(Test-Path -path $FullPath$DayFormat)
{
write-host "folder $FullPath$DayFormat exists"
$DayTimeFormat=Get-Date -f yyyy-MM-dd-hh-mm
write-host "Creating folder $FullPath$DayTimeFormat"
New-Item -Path $FullPath$DayTimeFormat -type directory
$script:Makefolder=$false
$script:FullArchivePath=$FullPath+$DayTimeFormat
}
else
{
write-host "no folder exists"
write-host "Creating folder $FullPath$DayFormat"
New-Item -Path $FullPath$DayFormat -type directory
$script:Makefolder=$false
$script:FullArchivePath=$FullPath+$DayFormat
}
}
#move file into archive
Move-Item $Fullfilename $script:FullArchivePath
write-host "Moving file $($Fullfilename) to $FullArchivePath"
}
#copy file into full
Copy-Item $wsp.FullName $FullPath
write-host "Copying file $($wsp.FullName) to $FullPath"
}
答案 0 :(得分:3)
检查你的功能。最有可能的是它首先输出另一个对象。在PowerShell F& O(格式化和输出)引擎看到一种类型的对象之后,它希望在该类型之后格式化所有内容。如果它然后看到另一种类型的对象,它将回退到使用Format-List IIRC。