我尝试使用以下批处理文件自定义Windows命令提示符。
@echo off
cls
:cmd
set /p "cmd=%cd%>"
%cmd%
goto cmd
因此,当我打开批处理文件时,它只需将我的命令转入cmd
变量并执行它并再次提示输入新命令。
但是以下命令echo %cd%
仅输出%cd%
然后我启用了delayedexpansion
并使用了echo !cd!
并获得了所需的输出。
我认为,由于延迟扩展,cmd
变量现在保持echo c:\Users\Sourav\Desktop
(我是否正确?)
但是当我尝试打开命令提示符(而不是批处理文件)并尝试以下命令时,我感到困惑。
我想,我会得到c:\Users\Sourav\Desktop
,但我得到!cd!
。这与我对echo !cd!
在第一种情况下如何工作的理解相矛盾。
为什么我在第二种情况下获得不同的输出?
有人可以建议对批处理文件进行任何改进,这样我可以在第一种情况下使用echo %cd%
获得所需的输出吗?
答案 0 :(得分:3)
你需要另一层次的解析。您可以使用 [i == j for i, j in zip(x_list, y_list)]
执行此操作:
call