这不会是一个别名(用PowerShell的说法),它只是一个函数或脚本。
大多数情况下,您只需在PowerShell中找到相关的类似物。
所以ls
在PowerShell中实际上是Get-ChildItem
的别名,它在PowerShell v3 +中也支持-Directory
参数,只返回目录,因此该部分几乎可以马上工作。
虽然你可以做一个foreach($thing in $things)
循环,在这种情况下,这将是一个多一点自然(PowerShell的EY)管道进入ForEach-Object
,所以是这样的:
$repos = 'C:\repos'
Get-ChildItem -Path $repos -Directory | ForEach-Object -Process {
Push-Location -Path $_
git pull
Pop-Location
}
仅供参考,使用别名和替代语法使它看起来最像你原来,这是可以做到这样的:
cd c:\repos
foreach ($dir in (ls -di)) {
git pull
cd ..
}
不过我推荐的第一个原因是:
- 它保留原来的路径
- 不别名
- 使用它使用什么,我觉得是迭代的一个更简单的方法(在PowerShell中)
这些都不例子处理的backgrounding任务虽然。我暂时放弃了这一点,因为它不是那么相似。
要做到这一点,您可以使用PowerShell Jobs。可以用Start-Job
或用Invoke-Command -AsJob
。
看看如何使用工作,并决定是否要花时间应用它只是10回购虽然。
'PS C:\> help about_Jobs' –