繁体   English   中英

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

[英]Please explain following outputs in Windows command prompt

我尝试使用以下批处理文件自定义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! 正在处理第一种情况。

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

任何人都可以建议批处理文件的任何改进,以便我可以在第一种情况下使用echo %cd%得到所需的输出?

你需要另一层解析。 您可以使用call来执行此操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM