【发布时间】:2021-08-10 23:53:33
【问题描述】:
问题
有没有办法改变CD,所以它总是假定 /d 开关 [更改驱动器和路径] 已设置?
进一步的想法/考虑
- 我想不出任何我不想包含 /d 的情况(即这实际上会导致问题),但是如果有人知道您可能想要这样做的情况(或者可以解释原因在每个 CD 声明上设置 /d 是个坏主意,请大声疾呼)
- 我过去做过类似的事情,通过创建一个包装 cmd 文件(例如
CDIR.cmd),该文件将简单地调用CD /d %*... 但实际上不确定是否推荐该方法(通常),所以认为我不妨先在这里问一下,然后再跳起来直接用这种方式解决(?) - 根据
COPY /?--COPY有一个环境变量"COPYCMD"您可以设置更改默认覆盖行为(以及COPY 中/Y 开关的行为) -- 是否有选项可做类似的东西?
【问题讨论】:
-
没有秘密的 CD 相关环境变量,这很好。原因是如果每个
cd被cd /D替换会导致批处理文件上的更改目录命令不起作用,例如包含cd /D "%TEMP%",因为cd /D /D "%TEMP%"会导致错误消息The syntax of the command is incorrect.。跨度> -
您可以定义一个宏:
doskeycd=cd /D $*(尽管随后指定cd /D失败,原因由 Mofi 解释)... -
@JosefZ -- 谢谢...我没有使用 PUSHD,但看过其他脚本(有时用它做聪明/复杂的事情!)...我检查了 ss64.com/nt/pushd.html 虽然它似乎比我想象的要简单...我假设在基本层面上,它的工作原理与 CD 完全一样(但也有更换驱动器的优势)?...如果是这样,那么我肯定会考虑是否,但理想情况下会理想情况下喜欢使用/覆盖 CD(通常是在我的脚本中使用
CD时,但忘记了 /d 我被卡住了(所以某种方式可以“使用 cd 但永远不必记住再次执行 /d”会很棒) -
谢谢@Mofi -- 如果没有等效的“COPYCMD”环境。变量那么很高兴知道,并且至少可以关闭考虑的选项......注意:我明白你关于多个 /D 开关的可能性的观点,以及这将如何破坏 CD......虽然,我想办法避免这你可以检查 /d 是否已经设置,如果没有设置,则只设置(惰性到字符串),对吧? (因为它必须是第一个选项,这将有助于简化检查,因为您只需要检查前 5 个字符(小写)是否 = "cd /d")
标签: cmd parameters default-value cd