中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 11:41
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 输入变量101,把101前面的数字新建文件 查看 700 回复 3
楼 主 输入变量101,把101前面的数字新建文件 发表于 2010-05-05 12:32 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
我有如下SET.INI文件,1到101之间是一个TAB的距离
1 101
2 102
3 103
4 105
5 106
6 107
7 108
8 109
9 111
10 113
我想要的就是set /p SS=请输入:101
if "!SS!"=="101" 就把”1“新建为0001.frt
前成是个例子

1。只要输入的是第二列的数字就以第一列数字新建成为四位的0000.frt到e:\user\
2。如果我输入:101-113 就新建0001frt到0010.frt 10个文件到E:\user\下

[ Last edited by lovehanbing520 on 2010-5-5 at 13:22 ]
2 发表于 2010-05-05 15:34 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
@echo off
color a
set /p SS=请输入:
for /f "tokens=1,2 delims= " %%a in (d:\ssi\set.ini) do if "%ss%"=="%%b" set a=%%a&call
:dellfill
pause

:dellfill
@echo off
call :countdigit %a%
if %c% equ 4 copy nul >e:\user\000%a%.frt
if %c% equ 3 copy nul >e:\user\00%a%.frt
if %c% equ 2 copy nul >e:\user\0%a%.frt
if %c% equ 1 copy nul >e:\user\%a%.frt
goto :eof

:countdigit
@echo off
set b=%1
for /l %%c in (0,1,4) do if not "!b:~%%c!"=="" set c=%%c
goto :eof

这样只能一次建一个~~~

如果我输入:101-113 就新建0001frt到0010.frt 10个文件到E:\user\下

这样如何写呢`~
3 发表于 2010-05-06 08:02 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
要求:set.ini文本第二列必须首字符不为0
@echo off
set /p SS=请输入:
for /f "tokens=1,2 delims=-" %%a in ("%SS%") do for /f "usebackq tokens=1,2" %%c in ("d:\ssi\set.ini") do if "%%b"=="" (if %%a==%%d call:n %%c) else if %%d geq %%a if %%d leq %%b call:n %%c
pause&exit
:n
set n=000%1
cd.>"e:\user\%n:~-4%.frt"


[ Last edited by Hanyeguxing on 2010-5-6 at 08:04 ]
4 发表于 2010-05-06 10:52 ·  中国 江苏 移动
新手上路
积分 18
发帖 18
注册 2010-05-03 22:58
16年会员
UID 166056
性别 男
状态 离线
嗯,我第二列首字符没有为0的~~调试过了,,可用,,谢谢`
论坛跳转: