gpt4 book ai didi

windows - 从 Windows 批处理文件调用 SUBST

转载 作者:可可西里 更新时间:2023-11-01 09:57:20 24 4
gpt4 key购买 nike

我在从 Windows 批处理文件调用 SUBST 时遇到问题。我想使用一批来创建虚拟驱动器映射,并使用第二批来卸载驱动器。但是卸载给出了错误信息:

The system cannot find the path specified.

这是我的批处理文件:

prepare.bat

pushd .
subst X: .
X:

cleanup.bat

popd
subst X: /D

执行给出以下输出:

d:\>prepare.bat

d:\>pushd .

d:\>subst X: .

d:\>X:

X:\>cleanup.bat

X:\>popd

d:\>subst X: /D
Das System kann den angegebenen Pfad nicht finden.

d:\>

任何人都可以向我解释这里出了什么问题以及如何解决它吗?

编辑:

需要注意的一些奇怪的事情:

  • 将所有命令直接输入控制台即可。仅在使用时批处理文件,发生错误。
  • 直接在调用 subst X:/D 之前驱动器映射正常。直接调用之后,驱动映射确实已经去掉了。但是为什么我会收到错误消息?

最佳答案

该行为的原因是执行批处理脚本的方式。它读取一行,执行它并读取下一行以执行,直到没有更多的行。

当您卸载驱动器时,您破坏了脚本的(虚拟)路径,因此“读取下一行”失败 - 脚本“消失”了。即使卸载是脚本的最后一行,解释器在尝试读取下一行之前也不知道 - 但失败了,因为脚本不再可用。

因此,您的错误消息并非来自脚本中的任何内容,而是来自解释器本身,试图读取脚本的下一行。

如果您在命令提示符下输入命令,则不会出现“下一行”,因此不会发生错误。

编辑

避免错误信息:

subst x: /d & goto :eof

一行被一次性读取和解析,当这一行明确地退出批处理时,解释器不会尝试读取行。 p>

关于windows - 从 Windows 批处理文件调用 SUBST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56149003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com