A execução de um comando a partir de um módulo importa esse módulo - assim, quando você executa esse comando, você importou o módulo PSCX.
O PSCX altera o alias "CD" para apontar para o comando "Set-LocationEx", que rastreia automaticamente o histórico de localização para que você possa navegar facilmente até os locais anteriores. Quando você chama Set-LocationEx sem parâmetros, eles mostram a pilha (por que else você executaria o CD sem parâmetros, afinal?)
Nota lateral, para importar alterações de ambiente de arquivos em lote para o PowerShell, eu uso esse script do PoshCode em vez disso: link
P.S .: Eles também (por padrão) usam o Write-Host para ecoar seu novo local. Você pode desativar esse comportamento definindo a variável de preferência:
$Pscx:Preferences.CD_EchoNewLocation = $False
Como todos sabem que usar write-host é considerado prejudicial certo? Usá-lo para escrever o caminho do diretório para fora quando eu não pedi um -Passthru é muito estranho, então você pode votar em esse bug ; -)
P.S .: Infelizmente, embora o PSCX tenha criado uma unidade de preferências, o PSCX não parece persistir nas mudanças de preferência (não sei por que, mas vou ver se consigo descobrir). De qualquer forma, para tornar suas preferências conhecidas, você precisa editar uma cópia do Pscx.UserPreferences.ps1
e e passar o caminho para esse arquivo como -Arg
ao importar o módulo PSCX (o que significa que você pode não dependem de importação automática). Obviamente, isso é uma dor:
Import-Module Pscx -Arg ~\Documents\WindowsPowerShell\Pscx.UserPreferences.ps1