Board logo

标题: [系统相关] 批处理怎样提取计算机名中的数字并判断大小及奇偶?[已解决] [打印本页]

作者: l541306072    时间: 2011-11-7 00:05     标题: 批处理怎样提取计算机名中的数字并判断大小及奇偶?[已解决]

本帖最后由 pcl_test 于 2016-7-16 00:21 编辑

有600台电脑,其中计算机名是这样按排的:CCC-A001 ~ CCC-A200  ,CCC-B201 ~ CCC-B400 , CCC-C401 ~ CCC-C600 ,现有这样的需求:
第一种功能是:计算机名中的数字是由固定三位数字组成的顺序号,希望高人能帮解题呀.如下调用:
@echo %computername%  
取得计算机名CCC-A199,但现只想提取数字号199,并判该数字号是否小于200,如果小于或等于200,则执行行c:\windows\yes.exe文件,如果大于200直接退出

第二种功能是:计算机名中的数字是由固定三位数字组成的顺序号,希望高人能帮解题呀.如下调用:
@echo %computername%  
取得计算机名CCC-A199,但现只想提取数字号199,并判该数字号是否为偶数,如果是偶数,则执行行c:\windows\yes.exe文件,如果是奇数则直接退出,这样说明应该比较清楚了吧。在此先谢谢热心的朋友们哈。
作者: CrLf    时间: 2011-11-7 07:17

数字一定是后三位吗?还是不确定位数呢?
作者: bingxing8000    时间: 2011-11-7 09:17

支持楼上的,应该把情况写清楚
作者: 920168    时间: 2011-11-7 10:43

我看他计算机名猜应该是最后三位
  1. echo off
  2. set num=%computername%
  3. if %num:~-3% LEQ "200" (start "" "c:\windows\yes.exe") else (exit)
复制代码

作者: l541306072    时间: 2011-11-7 21:08

本帖最后由 l541306072 于 2011-11-8 00:05 编辑

哈哈,很感谢4楼的朋友哂,你理解只对一半,计算机名是CCC-A199这样的格式,但我只想提取后三个数字号作为一个值,并与给定的一个三位数值比较得出判断条件。
作者: broly    时间: 2011-11-8 00:06

已解决的帖子就不要再去修改了,你可以重新开一帖
作者: l541306072    时间: 2011-11-8 13:42

本帖最后由 pcl_test 于 2016-7-16 00:21 编辑

先谢谢920168 这位朋友,你给出了第一种功能的解法,但我试了好像运行不正常,比如我在CCC-A101号电脑运行这个批处理,按我给的条件:从计算机名中提取的101应该是满足的小于200的,,但没有运行c:\windows\yes.exe
echo off
set num=%computername%
if %num:~-3% LEQ "200" (start "" "c:\windows\yes.exe") else (exit)
谢谢大家
作者: awk    时间: 2011-11-8 14:14

if "%num:~-3%" leq "200"
作者: 920168    时间: 2011-11-8 14:18

本帖最后由 920168 于 2011-11-8 15:56 编辑

你的是无盘?
  1. echo off
  2. set num=%computername%
  3. set num1=200
  4. ::判断小于200
  5. if %num:~-3% LEQ %num1% (start "" "c:\windows\yes.exe") else (exit)
  6. ::判断奇偶
  7. 2>nul set/a 1/(%num:~-1%%%2)&&exit||start "" "c:\windows\yes.exe"
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2