请在Windows命令提示符中解释以下输出

时间:2016-06-25 22:04:01

标签: windows batch-file cmd command-prompt

我尝试使用以下批处理文件自定义Windows命令提示符。

@echo off
cls
:cmd
set /p "cmd=%cd%>"
%cmd%
goto cmd

因此,当我打开批处理文件时,它只需将我的命令转入cmd变量并执行它并再次提示输入新命令。

但是以下命令echo %cd%仅输出%cd%

然后我启用了delayedexpansion并使用了echo !cd!并获得了所需的输出。

enter image description here

我认为,由于延迟扩展,cmd变量现在保持echo c:\Users\Sourav\Desktop我是否正确?

但是当我尝试打开命令提示符(而不是批处理文件)并尝试以下命令时,我感到困惑。

enter image description here

我想,我会得到c:\Users\Sourav\Desktop,但我得到!cd!。这与我对echo !cd!在第一种情况下如何工作的理解相矛盾。

为什么我在第二种情况下获得不同的输出?

有人可以建议对批处理文件进行任何改进,这样我可以在第一种情况下使用echo %cd%获得所需的输出吗?

1 个答案:

答案 0 :(得分:3)

你需要另一层次的解析。您可以使用 [i == j for i, j in zip(x_list, y_list)] 执行此操作:

call