中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 17:54
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问可以自动生成按数字递增的文件名吗? 查看 1,546 回复 11
楼 主 请问可以自动生成按数字递增的文件名吗? 发表于 2006-12-09 07:57 ·  中国 广东 深圳 电信
初级用户
积分 43
发帖 14
注册 2006-12-09 06:08
19年会员
UID 73009
性别 男
状态 离线
要求用户输入一段文字,按下Ctrl+Z后,即自动将这段文字保存成TXT文件,文件名由001开始,若001.TXT已经存在,则以002.TXT保存,若002.TXT也存在,则以003.TXT保存,若.....总之递增下去,BAT可以做吗?
2 发表于 2006-12-09 08:12 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  汗一个先。

  用户输入一段文字?在哪里输入啊?文本文件中输入?命令行中输入?批处理文件里面输入?QQ里面输入?

  再汗一个。
3 发表于 2006-12-09 08:16 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  按 ctrl+z ?批处理不是图形界面程序,无法接收如此复杂的按键指令,楼主发帖前请三思。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
4 发表于 2006-12-09 09:12 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线


@echo off&setlocal enabledelayedexpansion
set/a n=1
:redo
if exist 00!n!.txt (set/a n+=1 && goto redo)
echo 请输入你的文字:
copy con 00%n%.txt
本帖最近评分记录 (共 5 条) 点击查看详情
评分人分数时间
redtek +7 2006-12-09 09:18
ccwan +7 2006-12-09 22:07
9527 +5 2006-12-09 22:17
zh159 +5 2006-12-09 22:35
weapfe +2 2006-12-10 10:40
5 发表于 2006-12-09 22:09 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
@echo off&setlocal
set /a n=1
:loop
if exist 00%n%.txt (set /a n+=1&& goto loop)
copy con 00%n%.txt


其实这样就可以啦,因为LZ需要CTRL+Z来保存,意思就是COPY CON的结束,或者按F6也是同样的效果,提醒lxmxn兄一下,其实判断用不着延迟环境变量
本帖最近评分记录 (共 3 条) 点击查看详情
评分人分数时间
ccwan +7 2006-12-09 22:19
redtek +7 2006-12-09 22:35
zh159 +5 2006-12-09 22:35
我今后在论坛的目标就是做个超级坏人!!!
6 发表于 2006-12-09 22:33 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
在&/&&连接的同一行命令或者fo等循环脚本里才使用延迟环境变量,其他独立行可以不用
7 发表于 2006-12-09 22:36 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
真是精彩~~~
大家可以用它写《电子日记》了~:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
8 发表于 2006-12-09 23:00 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by redtek at 2006-12-9 09:36:
真是精彩~~~
大家可以用它写《电子日记》了~:)


@echo off
:loop
for /f %%i in ('Time/t') do set Time_=%%i
set Date_=%Date:~0,10%
set Date_=%Date_:-=%_%Time_::=%
if exist %Date_%.txt goto loop
echo.电子日记(%Date_%):
copy con %Date_%.txt
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +7 2006-12-10 12:14
9 发表于 2006-12-09 23:58 ·  中国 江西 南昌 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
嗯,想起原来在ms-dos下写过日记。

不过所有的日记都在一个文件里,叫做notebook.txt;

每天的日记都写到一个新文件note.txt;

然后给每行加上日期标记后合并到notebook.txt;

这样我可以查阅某一天的日记,也可以看所有的日记。

但后来觉得自己真得很傻,一天保存一个文件实现起来要简单得多。

可能当时是想节约一些磁盘空间吧。

一个文件占一个簇,对于80M的硬盘是有些奢侈了。
10 发表于 2006-12-10 00:38 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
zh159兄8楼《电子日记本》代码有意思~:)
今天分儿加光了,等有分的时候定给兄补上~:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
11 发表于 2006-12-10 02:35 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
copy con 的方法太早了,对于我们xp时代的用户,可以有更多的选择,其中最常见的替代命令有:findstr ; more ; sort。

@echo off
findstr .* >findstr.txt
more >more.txt
sort >sort.txt
findstr .* | more | sort >all.txt
more +3 | sort +3 1> all_arg.txt
....

相对copy con来说,它们可以利用参数来有选择性地过滤,排序。还可以通过>和>>来选择覆盖还是增加。
当然,copy /b xxx.txt + con bbb.txt也有它自己的用途。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +7 2006-12-10 12:14
12 发表于 2006-12-10 03:42 ·  中国 广东 江门 电信
初级用户
积分 43
发帖 14
注册 2006-12-09 06:08
19年会员
UID 73009
性别 男
状态 离线
Originally posted by redtek at 2006-12-9 09:36 AM:
真是精彩~~~
大家可以用它写《电子日记》了~:)

真聪明!也真被你猜中一半。

感谢4楼lxmxn及5楼9527的回复使我的问题解决了!

还请各位达人帮忙一下我另一贴中的问题:“求助:判断是否存在一个以上同类型文件并按条件执行”,详见该贴。
论坛跳转: