批处理文件:路径上的“未定义环境变量”

时间:2019-10-18 08:35:17

标签: batch-file

批处理文件中包含以下内容

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

我得到一个错误:

 Environment variable C:\Program Files (x86)\Wowza\creds.txt not defined

我需要解决什么?

第二,它适用于除一位同事之外的所有同事。同一台笔记本电脑可以制造,建模和构建。我使用了我的详细信息,但失败了,但对我有用。

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

creds.txt

u:JoeBloggs
p:Password1234

有什么主意吗?

谢谢

2 个答案:

答案 0 :(得分:1)

出现错误消息的原因是,您的for /f循环未评估文件的内容。它使用带引号的字符串作为字符串而不是文件名。 Usebackq改变了行为。

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

将您的set %%a循环更改为:

u=JoeBloggs

答案 1 :(得分:0)

我本来要对@stephan发表类似的答案,但他击败了我。但是,如果您可以选择将creds.txt文件更改为以下内容:

u=JoeBloggs
p=Password1234

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

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

实际上可以做到这一点:

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