找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 60247|回复: 25

[系统相关] [已解决]批处理如何根据IP地址判断是否执行程序?

[复制链接]
发表于 2021-8-14 12:57:49 | 显示全部楼层 |阅读模式
查询IP地址,与对应的IP地址就执行程序,反之就exit
例如:
192.168.1.1  start 111.EXE
192.168.1.2  start DDD.EXE
192.168.1.3  start AAA.EXE
192.168.1.4  start BBB.EXE
192.168.1.5  start WWW.EXE
192.168.1.6  start 222.EXE
192.168.1.7  start 33.EXE
192.168.1.8  start 444.EXE
192.168.1.9  start 555.EXE
192.168.1.10  start 666.EXE
192.168.1.11 start 777.EXE
192.168.1.12  start 888.EXE
192.168.1.13  start 999.EXE
192.168.1.14  start 0000.EXE
192.168.1.15 start EEE.EXE
192.168.1.16 start RRR.EXE
192.168.1.17 start RTY.EXE
192.168.1.18 start UUU.EXE
192.168.1.19 start III.EXE
192.168.1.20 start OOO.EXE
。。。。。。。。。。。。。。。。
查到电脑IP为192.168.1.2 就执行DDD.EXE
没有查到就退出脚本
发表于 2021-8-14 13:14:52 | 显示全部楼层
本帖最后由 idwma 于 2021-8-14 13:26 编辑
  1. @echo off
  2. call :n 111.exe ddd.exe aaa.exe ............
  3. goto :eof
  4. :n
  5. for /l %%i in (1,1,20) do (
  6. ipconfig|find "192.168.1.%%i"&&start %1
  7. shift
  8. )
复制代码
 楼主| 发表于 2021-8-14 13:46:01 | 显示全部楼层
回复 2# idwma


不明白
发表于 2021-8-14 14:00:53 | 显示全部楼层
回复 3# wlishihua


    那里不明白?
发表于 2021-8-14 14:07:35 | 显示全部楼层
本帖最后由 yakeyun 于 2021-8-14 14:21 编辑

回复 1# wlishihua


@echo off
cd /d %~dp0
for /f "delims=: tokens=1,2" %%a in ('ipconfig ^|find "IPv4"') do echo,%%b&set ips=%%b
if %ips% == 192.168.1.123 start 111.EXE
if %ips% == 192.168.1.2  start DDD.EXE
if %ips% == 192.168.1.3  start AAA.EXE
..............
exit

评分

参与人数 1技术 +1 收起 理由
wlishihua + 1 谢谢

查看全部评分

 楼主| 发表于 2021-8-14 14:10:29 | 显示全部楼层
回复 4# idwma
你那个代码同我所表达的意思不一样,我所想的是,我不知道这台电脑的IP地址,查询 之后如果是192.168.1.2 就可执行我所要求的程序,如果检测没有这个IP(192.168.1.2)就通出脚本
 楼主| 发表于 2021-8-14 14:15:14 | 显示全部楼层
本帖最后由 wlishihua 于 2021-8-14 14:18 编辑

回复 5# yakeyun


    一闪而过
@echo off
cd /d %~dp0
for /f "delims=: tokens=1,2" %%a in ('ipconfig ^|find "IPv4"') do (
if "%%b" = 192.168.1.1  start mhtcgi.exe
if "%%b" = 192.168.1.2  start Microsoft Edge.lnk

exit
发表于 2021-8-14 14:21:40 | 显示全部楼层
回复 7# wlishihua


再看看
发表于 2021-8-14 14:25:38 | 显示全部楼层
本帖最后由 idwma 于 2021-8-14 14:26 编辑

回复 6# wlishihua


    这样啊
  1. @echo off
  2. call :n 111.exe ddd.exe aaa.exe ............
  3. goto :eof
  4. :n
  5. for /l %%i in (1,1,1) do (
  6. shift
  7. )
  8. ipconfig|find "192.168.1.2"&&start %1
复制代码
 楼主| 发表于 2021-8-14 15:41:02 | 显示全部楼层
回复 5# yakeyun


  正常运行,谢谢!
 楼主| 发表于 2021-8-14 15:51:22 | 显示全部楼层
回复 9# idwma


   不是的

楼上正解
发表于 2021-8-14 15:56:42 | 显示全部楼层
回复 11# wlishihua


    最初的那个应该也可以吧,你不试一下我不知道那里错了.
发表于 2021-8-14 16:04:57 | 显示全部楼层
回复 11# wlishihua


    只能自己上机了
  1. @echo off
  2. call :n 111.exe ddd.exe aaa.exe ............
  3. pause
  4. goto :eof

  5. :n
  6. set/a n+=1
  7. ipconfig|find "192.168.1.%n%"&&start %1
  8. shift
  9. if not %n%==20 goto :n
复制代码
 楼主| 发表于 2021-8-14 18:20:47 | 显示全部楼层
回复 13# idwma


   真的不行,
发表于 2021-8-14 18:53:11 | 显示全部楼层
本帖最后由 idwma 于 2021-8-14 19:02 编辑

回复 14# wlishihua

尴尬之前把网关也包括进去了
    那再改一下这样呢
  1. @echo off
  2. call :n 111.exe ddd.exe aaa.exe ............
  3. pause
  4. goto :eof

  5. :n
  6. set/a n+=1
  7. ipconfig|findstr /i "^ipv4.*192.168.1.%n%"&&start %1&&goto :eof
  8. shift
  9. if not "%n%"=="" goto :n
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 22:19 , Processed in 0.031968 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表