1

所以我正在尝试创建执行findstr两个变量的批处理脚本。我正在从需要变量的特定文件中读取。

我需要的变量是

NetPath=
NetPathmed=

而我的目标是用这两个变量来做一个网络映射驱动。在第一个中,findstr我需要在第二个之后的所有内容,NetPath=而在第二个中,我只需要来自字符串的特定数量的数据。一个普通的 NetPathMed 看起来像这样

NetPathmed=\\**IPaddress**:C:\folder\file.

我只需要IP地址

例如我创建的批次看起来像这样

cd: C:\folder\
set var1="findstr 'NetPath=' file.ini"
for /f "tokens=1,2 delims== " %%a in ("%var1%") do set net=%%a&set path=%%b

Set var2= "findstr 'NetPathMed' opsetup.ini"
for /f "tokens=1,2,3 delims==/ " %%c in ("%var2%") do set net=%%c&set path=%%d &set net=%%e

net use var1(driveletter) \var2(IPaddress)\network folder /persistent:yes
4

1 回答 1

0
cd C:\folder\
set var1='findstr "NetPath=" file.ini'
for /f "tokens=1,* delims==" %%a in (%var1%) do set var1=%%b

Set var2='findstr "NetPathMed" opsetup.ini'
for /f "tokens=2,3 delims=\:" %%c in (%var2%) do ECHO elements %var1% %%c %%d: /persistent:yes

好吧 - 修复了一点。很难说出您从文件中提取的元素实际在哪里以及您希望将哪些元素组装到命令中。

使用 'NetPathMed in your code butNetPathmed in the data line you have given. If you don't use the/i switch,findstr` 更糟的是区分大小写。

其他错误:

cd:不应该有:

括号内的命令for /f应该用引号括起来。FINDSTR喜欢"double quotes"

我不知道您是否希望将数据放入var1其中var2或放入什么 - 两个文件的相关内容的示例以及要生成的所需命令会很有帮助。

我选择将=第一个文件中所选行中的所有文本分配到var1(因为这就是你所说的)

第一部分%%a是 token1 = NetPath(未使用),第二个标记(*=该行的其余部分)出现在下一个元变量 ( %%b)

同样,解析您发布的EXACT DATA,您仅使用第二个和第三个令牌

token1 is NetPathmed=
token2 is **IPaddress**
token3 is C
token 4 is \folder\file. I just need the IP address

请注意,您指定/not \。不同的动物。粉笔和奶酪。

所以 - 你需要做的就是组装各种元素%var1% %%c,并与你需要的固定文本一起,在测试后%%d替换为你应该离开......echonet use

于 2014-01-07T16:59:43.010 回答