- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里和其他网站上阅读了很多关于 pushd
的问题和答案,其中绝大多数都提到了 UNC 路径的问题。但是,我遇到了一个不同的问题,我还没有看到任何提示。
使用 Windows 10 x64 Enterprise(版本 1809),我从控制台窗口中执行以下批处理文件:
@echo off
setLocal EnableDelayedExpansion
set DestDir=c:\windows
pushd %DestDir%
我的问题是 pushd
似乎以错误的方式执行或根本没有执行。这意味着当批处理文件运行时,我不在 c:\windows
中,但仍在运行它之前所在的目录中。
为了理解这个问题,我尝试了几种方法(知道这些测试没有意义):
c:\windows
放在引号中 (set DestDir="c:\windows"
)%DestDir%
放在引号中 (pushd "%DestDir%"
)!
而不是 %
因为延迟扩展已开启,即 pushd "!DestDir!"
但是,当我没有打开延迟扩展时,pushd
会按预期工作。换句话说,在运行了以下批处理文件之后
@echo off
set DestDir=c:\windows
pushd %DestDir%
我确实被发送到 c:\windows
而不管我在运行批处理文件之前所在的目录。
我想我现在很傻,但我一辈子都无法解决这个问题。那么有人可以解释为什么延迟扩展处于事件状态时 pushd
会失败吗?
最佳答案
你的问题的原因在评论里已经讨论过了,但是目前还没有解决办法。
您可以通过显式 endlocal
解决此问题:
REM @echo off
setLocal EnableDelayedExpansion
set DestDir=c:\windows
endlocal & pushd %DestDir%
最后一行被一次性解析,所以 %DestDir%
在执行整行(使用 运行)之前被替换为其值(在
观看)。endlocal
之前) echo on
关于windows - pushd 在延迟扩展的批处理文件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56245235/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!