我有一个程序,我在其中运行nslookup,然后将它们存储到两个不同的文件中,一个包含IP,一个只有nslookup的输出。为了将我对nslookup的调用减半,我想调用它一次,将它存储在一个变量中,然后写入这两个文件。但是,一个简单的商店不起作用。从一个命令存储返回到一个bat文件中的变量
set val=nslookup %ip%
显示器
nslookup 127.0.0.1
和未运行它的结果。
我发现其中一种方法,这是
nslookup %ip% | find "Name"> tempFile
set /P result=<tempFile
,但我现在写一个文件,然后让值回。为了这个成本,我不妨叫nslookup两次。它也要求我选择一条线(这次对我来说很好,但对于其他情况可能不起作用)。
我还使用了循环招
for /f "delims=" %%a in ('nslookup %ip% ^| find "Name"') do set name=%%a
尝试,但这只返回的最后一行或一条线我发现指定。由于没有临时文件,但仍比上一个例子好,但仍不完善。
所以我的问题是如果有一些更好的方法来存储从命令返回值到变量。
编辑: 考虑
nslookup 127.0.0.1
返回
Server: fake.com
Address: 0.0.0.0
Name: localhost
Address: 127.0.0.1
现在,我要的是名称,因此返回一行适用于我目前的批处理文件。但是,如果我还需要知道服务器,所以我想
for /f "delims=" %%a in ('nslookup 127.0.0.1') do set returnVal=%%a
echo %returnVal%
显示
Server: fake.com
Address: 0.0.0.0
Name: localhost
Address: 127.0.0.1
在那里,现在它只显示
Address: 127.0.0.1
鉴于输出是两条线(至少)什么样的信息是你想提取?一个例子会很好。 – Magoo 2013-04-23 15:02:38