Board logo

标题: 输入变量101,把101前面的数字新建文件 [打印本页]

作者: lovehanbing520     时间: 2010-5-5 12:32    标题: 输入变量101,把101前面的数字新建文件

我有如下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 ]
作者: lovehanbing520     时间: 2010-5-5 15:34
@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\下

这样如何写呢`~
作者: Hanyeguxing     时间: 2010-5-6 08:02
要求: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 ]
作者: lovehanbing520     时间: 2010-5-6 10:52
嗯,我第二列首字符没有为0的~~调试过了,,可用,,谢谢`