中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 03:20
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (还有BUG)请高手帮忙这个批处理怎么写,不懂表达大意 查看 966 回复 8
楼 主 (还有BUG)请高手帮忙这个批处理怎么写,不懂表达大意 发表于 2007-06-29 01:28 ·  中国 浙江 湖州 电信
初级用户
积分 62
发帖 32
注册 2006-11-08 11:46
19年会员
UID 70030
性别 男
状态 离线
这个批处理中(我只复制全部其中一段),存在这样一个问题.就是计算机名位数的问题,
比如我设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 ]
2 发表于 2007-06-29 02:51 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

@echo off
set /p a=请输入:
set a=000%a%
set com=A%a:~-3%
echo 结果:%com%
pause
3 发表于 2007-06-29 15:08 ·  中国 浙江 湖州 电信
初级用户
积分 62
发帖 32
注册 2006-11-08 11:46
19年会员
UID 70030
性别 男
状态 离线
版主,还有个问题。帮忙一下。比如我输入的088这样的号码。计算机名现在是解决了。可是IP还没有解决。。我想要的结果就是不管输入88还是088结果都会88 。因为IP值头不能带0
192.168.8.88
4 发表于 2007-06-29 15:27 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
set ip=%ip:0=%
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
5 发表于 2007-06-29 15:42 ·  中国 浙江 湖州 电信
初级用户
积分 62
发帖 32
注册 2006-11-08 11:46
19年会员
UID 70030
性别 男
状态 离线
哈哈。谢谢楼上的两位达们。我的问题都解决了...
6 发表于 2007-06-29 16:50 ·  中国 浙江 湖州 电信
初级用户
积分 62
发帖 32
注册 2006-11-08 11:46
19年会员
UID 70030
性别 男
状态 离线
四楼的命令。输入计算机名号208的时候。输出结果变成了28了,,,
7 发表于 2007-06-29 17:23 ·  中国 浙江 湖州 电信
初级用户
积分 62
发帖 32
注册 2006-11-08 11:46
19年会员
UID 70030
性别 男
状态 离线
呜。。急。。有人帮忙解决嘛???
8 发表于 2007-06-29 17:39 ·  中国 安徽 合肥 电信
初级用户
积分 30
发帖 15
注册 2007-06-29 14:44
19年会员
UID 92675
性别 男
状态 离线
Originally posted by richercdw at 2007-6-29 05:23 PM:
呜。。急。。有人帮忙解决嘛???

你直接给这位Climbing发消息就是拉
9 发表于 2007-06-29 21:02 ·  中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
19年会员
UID 87369
性别 男
状态 离线
演示代码:
@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
论坛跳转: