批处理脚本没有获得正确的服务器名称?

时间:2013-11-19 06:28:59

标签: batch-file

我创建了一个批处理脚本来查询服务器,但是当我启动它时,服务器名称将不会出现。我不知道为什么。

这是脚本:

set reg1=HKEY_LOCAL_MACHINE\SOFTWARE\VERITAS\NetBackup\CurrentVersion
FOR /F %%i in (%server%) do reg query \\%%i\%reg1%/v %valueName% |FINDSTR  "Install Type" >>%LogFiel%

FOR /F "tokens=4,5* delims= " %%z in (%LogFile%) do echo The %%i %%z Master >r.txt

结果是: %i Master

我尝试使用if else但仍然没有得到%% i这是服务器名。


嗨马克这里是剧本

set WorkingDir=D:\Patching\Uptime\Uptime
set LogFile=%WorkingDir%\Status1.log
set LogFile1=%WorkingDir%\Status2.log
set server=list.txt
set valueName="Install Type"
set reg1=HKEY_LOCAL_MACHINE\SOFTWARE\VERITAS\NetBackup\CurrentVersion notepad.exe
FOR /F %%i in (%server%) do reg query \\%%i\%reg1% /v %valueName% |FINDSTR "Install Type" >>%LogFiel%
FOR /F "tokens=4,5* delims= " %%z in (%LogFile%) do echo The %%i %%z Master >r.txt pause –  

1 个答案:

答案 0 :(得分:0)

这里有一些问题。

  1. %server%未在此脚本中定义。
  2. %valueName%未在此脚本中定义
  3. 您在第二行引用%LogFiel%,但在下一行中引用%LogFile%
  4. 您在其循环之外引用%%i,因此不再定义它。
  5. 您的reg query会展开到\\servername\HKEY_LOCAL_MACHINE\SOFTWARE\VERITAS\NetBackup\CurrentVersion/v并且在/ v
  6. 之前应该有空格

    我怀疑是#4导致了最明显的问题,但是你可以发布你的其余脚本了吗?它看起来并不像是整件事。

    编辑:我的意思是#4导致问题 - 忘了我在它上方添加了一行。 : - )