>我在批处理文件中有以下内容
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"