yek*_*chi 28 windows command-line
path在 Windows 命令行中搜索在变量内打印路径的解决方案我来到了这个解决方案。答案是这个命令:
echo %path:;=&echo.%
Run Code Online (Sandbox Code Playgroud)
现在我想知道这是如何工作的。
wiz*_*zz4 31
这是使用命令行变量替换。%path:;=&echo.%表示 " %path%,但将所有;s替换为&echo."。这意味着,与set path=C:\Windows\System32;C:\Windows\;;C:\Python37;:
echo %path:;=&echo.%
Run Code Online (Sandbox Code Playgroud)
变成:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
Run Code Online (Sandbox Code Playgroud)
由于&是命令分隔符,这相当于:
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
Run Code Online (Sandbox Code Playgroud)
由于 DOS Batch 的怪癖,除非后面没有任何内容,否则echo.与此相同。如果是这种情况,它只是不打印任何内容,而不是告诉您是打开还是关闭。这将使输出:echo ECHO
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
Run Code Online (Sandbox Code Playgroud)
真的,应该echo.%path:;=&echo.%考虑%PATH%以 a 开头的情况;,但无论如何这个命令非常聪明。
进入详细的细节,真的 echo(应该使用而不是echo.. 这是因为echo.当您有一个名为 的文件时可能会出现问题echo,并且速度很慢,因为它每次运行时都必须检查磁盘(%CD%我认为也是所有%PATH%)。(我没有 Windows 的副本,所以我不能自己检查它;是文件的存在会影响它的%CD%任何地方或任何地方,它有什么作用?)%PATH%echoecho.
Ber*_*end 24
这是我以前从未见过的有趣解决方案。让我试着解释一下:
echo %path%. 这将在以分号 ( ;)分隔的单行上打印所有目录%path:a=b%which 将替换所有a字符becho. 用于打印换行符&用于分隔命令,例如echo line1&echo line2将打印两行;用空替换,然后打印一个换行符”。我找不到关于此的任何文档,所以这只是我的解释。坦率地说,我什至不知道这是可能的,但是你去了。更新我对这一步的解释似乎是错误的,wizzwizz4更好地解释了。| 归档时间: |
|
| 查看次数: |
14155 次 |
| 最近记录: |