Sto provando a creare uno pseudonimo di git commit
che registra anche il messaggio in un file di testo separato. Tuttavia, se git commit
restituisce "nothing to commit (working directory clean)"
, NON deve registrare nulla nel file separato.Il confronto delle stringhe non funziona nella funzione PowerShell - cosa sto facendo male?
Ecco il mio codice. L'alias git commit
funziona; l'output su file funziona. Tuttavia, registra il messaggio indipendentemente da ciò che viene restituito da git commit
.
function git-commit-and-log($msg)
{
$q = git commit -a -m $msg
$q
if ($q –notcontains "nothing to commit") {
$msg | Out-File w:\log.txt -Append
}
}
Set-Alias -Name gcomm -Value git-commit-and-log
sto usando PowerShell 3.
"$ q contiene una serie di stringhe di ogni riga di gdd stdout." Solo se git produce più di una riga di output. Se git emette solo una riga su stdout, $ q conterrà una singola stringa, non una matrice (qualcosa che ho notato nella mia risposta). –
Più righe vengono restituite dagli OPs commit commit git (provato sul mio computer). –
Non uso quello strumento, quindi non posso commentare in merito. Ma volevo solo sottolineare che questa risposta specifica non può essere generalizzata a tutti i casi di acquisizione dell'output di uno strumento da riga di comando. –