Board logo

标题: (还有BUG)请高手帮忙这个批处理怎么写,不懂表达大意 [打印本页]

作者: richercdw     时间: 2007-6-29 01:28    标题: (还有BUG)请高手帮忙这个批处理怎么写,不懂表达大意

这个批处理中(我只复制全部其中一段),存在这样一个问题.就是计算机名位数的问题,
比如我设A001这台机子

我输入1这样子输出的结果是A001 这是对的也是我想要的结果.
我输入001的话.就出现问题了.输出的结果变成了A00001了,好郁闷的说.

我不懂的怎么写批处理.不管输入是1还是001输出的结果都是A001.请教各位达人了.


:OK
mode con cols=50 lines=12&color a
set aip=192.168.1.
set bip=192.168.2.
set cip=192.168.3.
set mask=255.255.248.0
set gateway=192.168.4.254
set dns1=192.168.4.254
set dns2=61.130.254.34
set aname=A
set bname=B
set cname=C
set a=00
set b=0

:MENU
echo.
echo A区 请按 1  
echo.
echo B区 请按 2  
echo.
echo C区 请按 3  
echo.
echo.
echo.
set /p KEY=请输入您的选择:
if %KEY% == 1 goto A
if %KEY% == 2 goto B
if %KEY% == 3 goto C

:A
echo.
echo A 区
echo.
echo -------------------------------------------------
echo.
set/p apc=请输入计算机号:
echo.
echo -------------------------------------------------
echo.
if exist ComputerName.reg del ComputerName.reg
if %apc% GEQ 255 goto AEE
if %apc% GEQ 100 goto ACC
if %apc% GEQ 10 goto ABB
if %apc% LSS 10 goto AAA
:AAA
set apcname=%aname%%a%%apc%
goto ADD
:ABB
set apcname=%aname%%b%%apc%
goto ADD
:ACC
set apcname=%aname%%apc%
goto ADD
:ADD
set amyip=%aip%%apc%
echo 你的当前设置是
echo 计算机名为:%apcname%
echo IP为:%amyip%
echo.
echo 开始应用设置ing......
reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %apcname% /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %apcname% /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %apcname% /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %apcname% /f
echo.
netsh interface ip set address name="本地连接" source=static addr=%amyip% mask=%mask%
netsh interface ip set address name="本地连接" gateway=%gateway% gwmetric=0
netsh interface ip set dns name="本地连接" source=static addr=%DNS1% register=PRIMARY
netsh interface ip add dns name="本地连接" addr=%DNS2% index=2
reg add "HKLM\Software\iCafe8" /v ServIP /t reg_sz /d 192.168.4.221 /f
reg add "HKLM\Software\iCafe8" /v ServPort /t reg_dword /d 9910 /f
goto fjwblm
:AEE
echo 大于255啦...重新输入一次哇...
goto MENU

[ Last edited by richercdw on 2007-6-29 at 04:49 PM ]
作者: lxmxn     时间: 2007-6-29 02:51

@echo off
set /p a=请输入:
set a=000%a%
set com=A%a:~-3%
echo 结果:%com%
pause

作者: richercdw     时间: 2007-6-29 15:08
版主,还有个问题。帮忙一下。比如我输入的088这样的号码。计算机名现在是解决了。可是IP还没有解决。。我想要的结果就是不管输入88还是088结果都会88 。因为IP值头不能带0
192.168.8.88
作者: Climbing     时间: 2007-6-29 15:27
set ip=%ip:0=%
作者: richercdw     时间: 2007-6-29 15:42
哈哈。谢谢楼上的两位达们。我的问题都解决了...
作者: richercdw     时间: 2007-6-29 16:50
四楼的命令。输入计算机名号208的时候。输出结果变成了28了,,,
作者: richercdw     时间: 2007-6-29 17:23
呜。。急。。有人帮忙解决嘛???
作者: shurenzhi     时间: 2007-6-29 17:39


  Quote:
Originally posted by richercdw at 2007-6-29 05:23 PM:
呜。。急。。有人帮忙解决嘛???

你直接给这位Climbing发消息就是拉
作者: ThinKing     时间: 2007-6-29 21:02
演示代码:
@echo off
set /p ip=please input your test numbers:
:loop
if "%ip:~0,1%"=="0" set ip=%ip:~1%&goto :loop
echo %ip%
pause