Entendo que ponto e vírgula é um separador de comandos no Powershell. echo "hello"; dir
dá essa saída.
PS C:\> echo "hello"; dir
hello
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018-04-29 13:02 BCD_Backup
d----- 2018-12-02 14:08 Dell
<snip>
Mas por que date; dir
dar essa saída?
PS C:\> date; dir
Friday, December 14, 2018 11:14:23
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\BCD_Backup
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\
PSChildName : BCD_Backup
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : True
Name : BCD_Backup
FullName : C:\BCD_Backup
Parent :
Exists : True
Root : C:\
Extension :
CreationTime : 2018-04-29 13:02:31
CreationTimeUtc : 2018-04-29 11:02:31
LastAccessTime : 2018-04-29 13:02:31
LastAccessTimeUtc : 2018-04-29 11:02:31
LastWriteTime : 2018-04-29 13:02:31
LastWriteTimeUtc : 2018-04-29 11:02:31
Attributes : Directory
Mode : d-----
BaseName : BCD_Backup
Target : {}
LinkType :
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Dell
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\
<snip>
command-line
powershell
Michael Teter
fonte
fonte
date
. Não é um alias, nem um cmdlet ou .exe (mesmo problema no PSv6 BTW)Respostas:
Como o PowerShell executa as instruções uma a uma, eu acho, aplica a formatação de saída da primeira instrução a todas as instruções subseqüentes.
Como
Get-Date
retorna um objeto doDateTime
tipo, ele é formatado como lista, afetando a saída 'dir'.Você pode testar essa suposição alterando o tipo de retorno de
Get-Date
para string usando a opção 'format':(isso produzirá a saída padrão para 'dir')
Ou alterando a formatação de saída padrão, canalizando-a para
Format-Table
:fonte
Isso parece ocorrer apenas quando você usa a data; 'quase qualquer outra coisa depois', inclusive outros cmdlets PS (tentei alguns).
'date', conforme digitado, parece estar chamando o Windows principal (assim como o cmd.exe) para recuperar essa cadeia de dados, o PowerShell está tentando fazer algo com a string que aparece.
Se você reverter isso, 'qualquer coisa aqui'; a data não exibirá essa singularidade. Apenas faz isso ...
fonte