欢迎使用PowerShell指南包含以下PowerShell命令的等效
项pwd
:cd
、、、、、、、、、、、、、、、、和:https : //mathieubuisson.github.io/powershell-linux-bash/ls
find
cp
rm
mkdir
touch
cat
tail
grep
uname
mkfs
ping
man
cut
此外,还可以找到其他命令行命令的附加等效项,例如which、where、alias、wget、curl、type、%0,甚至命令覆盖。
但是,我仍然无法弄清楚如何for
在 Powershell 中执行简单语句。例如,以下内容将根据文件名对所有文件进行分组,假设每个文件名都有一个 .txt 等效文件:
set b=0
for %a in (*.txt) do set /a b=!b!+1 > NUL & echo (!b!) & dir /b %~na.*
PowerShell 中的等效命令是什么?命令
ls *.txt | ForEach-Object {Split-Path -LeafBase -Path $_.Name}
列出文件。但是,我如何将文件名传递给命令dir /b %~na.*
?似乎只要我关闭 For-Each-Object 命令的括号,结果就会以聚合的形式传递,而不是能够一次处理一行。如果我在 Split-Path 周围添加另一层,那么最终会$_
变成一个不同的对象,因此无法将文件名与扩展名分开。
编辑:有没有更好的方法可以让我一次解析一个结果?该for
命令是在评论中建议的;我只是很难弄清楚如何让它处理所有 *.txt 文件;但如果可行,也许这就是要走的路?
如果可能的话,最好从命令行执行此操作,而无需写入文件。