高手帮写个批处理~十万火急。

来源:百度知道 编辑:UC知道 时间:2024/06/22 09:03:55
我另有一个软件会写入不同内容至目录f:abcd下 1.txt 和 2.txt 两个文件中。
想用2内的第一行内容作为TXT文件名, 1的内容作为文件内容 另存一个txt文件至目录f:\bbb ( 如果2内内容为空则不用写文件)

例:f:\abcd 下本来有三个文件 1.txt 2.txt 3.txt
有软件执行后会写入不同的数据至这两个文件。

例:
1.txt 中的内容为(也有可能无内容)
11111
22222
33333
44444
55555

2.txt 中的内容为。(也有可能为空)
11111

3.txt 中的内容为:11111(初始值,纯数字,用来累加的,初始值自由设置)

现在要做的是:
如果2内没有内容。就把1和2的内容都清空。成为空文本。
然后把3内的数值再+1,把结果写入2和3内,覆盖原来的内容。
程序结束。

如果2内有内容。就把3的内容例中的:11111(3内的数据只有一行)作为文件名,1的内容作为文件内容,另存为一个txt文件至目录f:\bbb目录下。
这个示例里面。这个生成的文件就是:11111.txt
接下来把这个11111(3的内容)+1,计算结果写入到3和2内,覆盖原有内容。
清空1内的内容。
程序结束。

要直接运行这个批处理就能得到另存的文件(如果3,2,为空就不需要得到文件)
3内有值一定要有累加。就是我运行一次,3内的值就能+1。这样如果我运行三次就可以得到三个TXT文件:11111.txt 11112.txt 11113.txt (如果1,2没有数据的情况下不需要生成这些文件)

请高手写一个这样的批处理,万分感谢。呵呵。

@echo off
setlocal ENABLEDELAYEDEXPANSION
set a=0
for /f %%i in (2.txt) do ( set /a a=a+1 )
if %a%==0 goto 1
goto 2

:1
del 1.txt
copy nul 1.txt
for /f %%i in (3.txt) do (
set /a s=%%i+1
echo !s!>2.txt
echo !s!>3.txt
)
exit

:2
for /f %%i in (3.txt) do (
md f:\bbb
copy nul f:\bbb\%%i.txt
type 1.txt>f:\bbb\%%i.txt
set /a n=%%i+1
echo !n!>2.txt
echo !n!>3.txt
del 1.txt
copy nul 1.txt
)
exit

说明 :1.txt 2.txt 3.txt 这三个文件要和该批处理文件要放在一个目录里面。