如何创建一个 DOSKEY 别名命令来打印 Windows %PATH% 与新行上的每个条目



我的任务与打印窗口%PATH%相同,每个条目都在新行上

我有一个任务:在新行上打印 %PATH% 变量的所有条目。例如:

C:Program Files
C:Windows
C:WindowsSystem32

等等...

这可以通过echo %path:;=&echo.%实现,如此处所述

我想使用 DOSKEY 将其分配给命令别名

但是以下脚本对我来说失败了

DOSKEY list=echo %path:;=&echo.%

它只是在我定义 DOSKEY 时打印所有路径,之后,当我尝试调用list命令时,它不起作用。

如@eryksun所述,您需要转义特殊字符。

更新:并防止过早扩展 - 将使用延迟扩展。

doskey list=cmd /v:on /c "for %p in ("!path:;=" "!") do @echo %~p"

解释其工作原理:我们不能直接将解决方案与echo ^%path:;=^&echo.^%一起使用,因为它存储在已经扩展的宏中。为了防止这种情况,我尝试使用延迟扩展(带有cmd /v:on /c的部分(。它似乎几乎可以工作,但没有在新行上拆分(由于某种原因添加&不适用于延迟扩展(。

然后我开始寻找一种拆分!path!的方法,并发现了一个巧妙的技巧,将;替换为" "(双引号空格(("!path:;=" "!"(。这种拆分对于普通for来说已经足够好了(没有/f选项(。其余的都是显而易见的。

最新更新