Aqui está a coisa, você está dizendo ao PowerShell para escrever para ". \ log.log" e é. É só que não acho que está escrevendo onde você espera que seja. Ele está escrevendo para onde get-location
é, que é na verdade um padrão que normalmente é o diretório do usuário (ou o da conta que o está executando). Verifique .\users\<username>\log.log
e veja se está lá. Agora, o que você quer é uma maneira de obter o diretório de execução de script atual e escrever sua saída lá. Você pode fazer isso assim:
function Get-ScriptDirectory
{
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
$ScriptDir = Get-ScriptDirectory
No seu caso, $LogFile
seria realmente:
$LogFile = "$ScriptDir\log.log"
Confira Invoke-WebRequest
:) Você pode achar mais fácil solicitações da web. Você também pode considerar adicionar um finally
ao seu try\catch
, de modo que seja um try\catch\finally
. O bloco finally
sempre é executado e você pode usá-lo para registrar a execução de scripts (nesta instância).