批处理文件:在路径上"Environment Variable Not Defined"



>我在批处理文件中有以下内容

for /f "delims=" %%a in ("C:Program Files (x86)Wowzacreds.txt") do set %%a
net use J: https://csv/dav %p% /user:%u% /persistent:yes

我收到一个错误:

Environment variable C:Program Files (x86)Wowzacreds.txt not defined

我需要什么来解决这个问题?

其次,它适用于所有同事,除了一个。相同的笔记本电脑品牌、型号和构造。我使用了我的详细信息,它在他的身上失败了,但在我的身上工作。

失败的是它要求提供凭据来映射驱动器,而不是从文件中获取它们

信誉.txt

u:JoeBloggs
p:Password1234

知道吗?

谢谢

错误消息的原因是,for /f循环不会计算文件的内容。它将带引号的字符串作为字符串而不是文件名。Usebackq改变了这种行为。

脚本中还有另一个失败:使用代码,set %%a转换为set u:JoeBloggs,这是无效语法。正确的语法要求set u=Joebloggs。因此,您必须将行拆分为冒号之前的一部分和冒号之后的一部分,并相应地构建set命令(当文件的内容看起来像u=JoeBloggs时,set %%a会起作用(

for循环更改为:

for /f "usebackq tokens=1,* delims=:" %%a in ("C:Program Files (x86)Wowzacreds.txt") do set "%%a=%%b"

我打算向@stephan发布类似的答案,但他打败了我。但是,您可以选择将creds.txt文件更改为以下内容:

u=JoeBloggs
p=Password1234

您可以将for循环缩短一点:

for /f "usebackq delims=" %%a in ("C:Program Files (x86)Wowzacreds.txt") do set "%%~a"

这实际上只是这样做:

set "u=JoeBloggs"
set "p=Password1234"

相关内容

最新更新