mkdir
no PowerShell retorna o diretório criado que é impresso por padrão. Quando estou em uma sessão interativa do PowerShell, fico um pouco perturbado com esse padrão. Claro, posso desativar a impressão redirecionando a saída para $null
:
mkdir $env:temp\foo > $null
Como prefiro não escrever o redirecionamento toda vez que crio um diretório, gostaria de saber se há uma opção que eu possa definir para impedir que o cmdlet retorne o objeto durante uma sessão interativa do PowerShell.
Como
mkdir
é uma função que envolveNew-Item
, você pode editar a função obtendo-a defunction PSProvider
, altere-a e salve-a.Este comando mostra o que é executado quando você executa
mkdir
:Você pode realmente alterar o scriptblock e salvá-lo novamente.
A linha que envolve é esta
mkdir
:New-Item
$scriptCmd = {& $wrappedCmd -Type Directory @PSBoundParameters }
então podemos apenas adicionar um
| Out-Null
a isso e ele faz a mágica. Todos os outros métodos de supressão de saída, como:null =
> null
[void]
não funcionam neste caso, porque a Microsoft trabalhou com um
steppablePipeline
ao criar esta função.isso nos deixa com este código:
Coloquei em uma função para você colocar no seu PowerShell Profile , pois esse método não persiste quando você fecha e reabre o PowerShell. Se você colocá-lo em seu perfil, poderá executá-lo em sua sessão interativa do PowerShell quando precisar.
Você pode criar um Alias para essas funções em seu perfil e apenas executá-las se realmente precisar, como:
Editar:
Se você quiser restaurar o "antigo"
mkdir
basta trocar os.Replace()
Argumentos e executá-lo novamente, aqui está outra função para isso: