使用/ f信息(带有子网掩码的变体的IP)来启动远程连接程序?

时间:2015-05-25 17:39:59

标签: batch-file

我想做什么:

。通过搜索.txt文件查找并计算(通过用户输入)远程机器的IP并将该信息传递给连接程序;

到目前为止我的批次:

@Echo off
mode con: cols=50 lines=20
Title direct connect
:start
color 0A
cls
Set Var=
SET /P var= Name:
FINDSTR %var% C:\IP_LAN.txt
Pause 

。此时我得到结果:10001; 225.225.225.192; 192.192.192.1(名称;子网掩码; IP)

然后如果我使用FOR / F:

for /F "tokens=2,3 delims=; " %%a in ('FINDSTR %var% C:\IP_LAN.txt') DO @echo 2nd token "%%a" 3rd token "%%b"

我确实:

Name:10001
10001;225.225.225.192;192.192.192.1
2nd token "225.225.225.192" 3rd token "192.192.192.1"

我想在以下问题中使用第2和第3个令牌:

IF IF = 225.225.225.192那么第3个是+38(192.192.192.1 ==> 192.192.192.39)

IF IF = 225.225.225.224那么第3个是+17(192.192.192.1 ==> 192.192.192.18)

用作主机

start "C:\Program Files\UltraVNC" vncviewer.exe -connect -4greycolors **host** ::xxxx -Password xxxxxx

这是我的第一批真正的批次,过去2天我已经尽了最大努力,但我显然被卡住了。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

下一个代码段应该可以使用。请注意:getX计算子程序:

@ECHO OFF
SETLOCAL enableextensions
:: 
:: don't let %var% empty as 'FINDSTR C:\IP_LAN.txt' will wait for user input
Set "Var=xxx"
SET /P "var= Name: "

for /F "tokens=2,3 delims=;" %%a in ('FINDSTR %var% C:\IP_LAN.txt') DO (
    @echo 2nd token "%%a" 3rd token "%%b"
    if "%%a"=="225.225.225.192" call :Getx "%%b" 38
    if "%%a"=="225.225.225.224" call :Getx "%%b" 17
  )
:: further code


goto :eof
:getX
set "hostIP="
set "iiPlus="   
for /F "tokens=1-4 delims=." %%A in ("%~1") DO (
    set "hostIP=%%A.%%B.%%C"
    set /A "iiPlus=%%D + %~2"   
  )
echo start ... host %hostIP%.%iiPlus%
goto :eof

但是,您的start命令可能无法正常工作,因为双引号括起的第一个参数将被视为命令标题;尝试下一个语法模板:

START "title" [/D path] [options] "command" [parameters]

修改:输出(使用其他文件名而不是C:\IP_LAN.txt,请参阅type)。 :: more code 注释指出更多代码是 facultative 可选

==>type D:\bat\StackOverflow\files\30443425.txt
10001;225.225.225.192;192.192.192.1
10002;225.225.225.224;192.192.192.1

==>D:\bat\StackOverflow\30443425a.bat
Name: 10001
2nd token "225.225.225.192" 3rd token "192.192.192.1"
start ... host 192.192.192.39

==>D:\bat\StackOverflow\30443425a.bat
Name: 10002
2nd token "225.225.225.224" 3rd token "192.192.192.1"
start ... host 192.192.192.18

下一个输出也可能发生:

==>D:\bat\StackOverflow\30443425a.bat
Name: 225
2nd token "225.225.225.192" 3rd token "192.192.192.1"
start ... host 192.192.192.39
2nd token "225.225.225.224" 3rd token "192.192.192.1"
start ... host 192.192.192.18

资源(必读):