Dies wäre kein Alias (im PowerShell-Sprachgebrauch), es wäre nur eine Funktion oder ein Skript.
Meistens würden Sie nur die relevanten Analoga in PowerShell finden.
So ls
in Powershell ist eigentlich ein Alias für Get-ChildItem
, die in Powershell auch v3 + einen -Directory
Parameter unterstützt nur Verzeichnisse zurück, so dass ein Teil sofort fast funktioniert.
Obwohl Sie eine foreach($thing in $things)
Schleife tun, in diesem Fall wäre es ein bisschen natürlicher sein (Powershell-ey) zum Rohr in ForEach-Object
, so etwas wie diese:
$repos = 'C:\repos'
Get-ChildItem -Path $repos -Directory | ForEach-Object -Process {
Push-Location -Path $_
git pull
Pop-Location
}
Als Referenz mit Alias-Namen und alternative Syntax, um es den meisten wie die original aussehen könnte es wie folgt geschehen:
cd c:\repos
foreach ($dir in (ls -di)) {
git pull
cd ..
}
jedoch habe ich die erste empfehlen, weil:
- bewahrt Ihre ursprünglichen Pfad
- es verwendet keine Aliase
- verwendet es, was ich fühle mich ein einfacher Weg von Iterieren ist (in Powershell)
Keines dieser Beispiele behandeln die Backgrounding von die Aufgabe jedoch. Ich habe das vorläufig weggelassen, weil es nicht so analog ist.
Um dies zu tun, können Sie PowerShell Jobs verwenden. Entweder mit Start-Job
oder mit Invoke-Command -AsJob
.
Schauen Sie sich an, wie Sie Jobs verwenden und entscheiden, ob Sie die Zeit für nur 10 Repos verwenden möchten.
'PS C: \> Hilfe about_Jobs' –