PowerShell New-Item输出不一致 - 为什么?

时间:2015-06-23 19:10:37

标签: powershell filesystems

我对于相同的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"
}

1 个答案:

答案 0 :(得分:3)

检查你的功能。最有可能的是它首先输出另一个对象。在PowerShell F& O(格式化和输出)引擎看到一种类型的对象之后,它希望在该类型之后格式化所有内容。如果它然后看到另一种类型的对象,它将回退到使用Format-List IIRC。