Esta é uma pergunta antiga agora, mas eu vim aqui procurando uma resposta, então imaginei dar os resultados da minha experimentação.
Existe um objeto $psISE
que controla as configurações do ISE, os arquivos abertos, etc. Há muito o que fazer com ele.
Houve uma função promissora:
$psISE.CurrentPowerShellTab.Files.Clear()
Infelizmente, isso simplesmente fecha todos os arquivos abertos (se eles foram salvos) e, em seguida, abre um novo arquivo sem título.
Acabei com isso:
$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
$file = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($file)
}
Basicamente, ele continua verificando os arquivos abertos e os fecha até que não haja mais nenhum aberto. Se você tivesse que executar isso de forma interativa e tivesse um documento não salvo aberto, você seria inundado por um erro rapidamente, já que ele não fecha e volta para tentar fechá-lo novamente.
Você pode colocar isso no seu perfil do ISE (C: \ username \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1). É assim que meu perfil se parece no momento:
$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
$file = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($file)
}
psEdit $PSScriptRoot\snips.ps1
Como isso é executado ao iniciar o ISE, ele fecha o arquivo padrão sem título e abre um arquivo aleatório com pequenos trechos que eu gostaria de referir. Você pode omitir a última linha ou alterá-la para qualquer arquivo que queira abrir.
n.b. que $null =
está lá para suprimir a saída, e é mais rápido que o piping para Out-Null
(o que eu acho importante quando você está esperando o seu editor carregar).