标题: 请问可以自动生成按数字递增的文件名吗?
[打印本页]
作者: mp3down
时间: 2006-12-9 07:57
标题: 请问可以自动生成按数字递增的文件名吗?
要求用户输入一段文字,按下Ctrl+Z后,即自动将这段文字保存成TXT文件,文件名由001开始,若001.TXT已经存在,则以002.TXT保存,若002.TXT也存在,则以003.TXT保存,若.....总之递增下去,BAT可以做吗?
作者: lxmxn
时间: 2006-12-9 08:12
汗一个先。
用户输入一段文字?在哪里输入啊?文本文件中输入?命令行中输入?批处理文件里面输入?QQ里面输入?
再汗一个。
作者: namejm
时间: 2006-12-9 08:16
按 ctrl+z ?批处理不是图形界面程序,无法接收如此复杂的按键指令,楼主发帖前请三思。
作者: lxmxn
时间: 2006-12-9 09:12
@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
作者: 9527
时间: 2006-12-9 22:09
@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兄一下,其实判断用不着延迟环境变量
作者: zh159
时间: 2006-12-9 22:33
在&/&&连接的同一行命令或者fo等循环脚本里才使用延迟环境变量,其他独立行可以不用
作者: redtek
时间: 2006-12-9 22:36
真是精彩~~~
大家可以用它写《电子日记》了~:)
作者: zh159
时间: 2006-12-9 23:00
Quote: |
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
作者: qzwqzw
时间: 2006-12-9 23:58
嗯,想起原来在ms-dos下写过日记。
不过所有的日记都在一个文件里,叫做notebook.txt;
每天的日记都写到一个新文件note.txt;
然后给每行加上日期标记后合并到notebook.txt;
这样我可以查阅某一天的日记,也可以看所有的日记。
但后来觉得自己真得很傻,一天保存一个文件实现起来要简单得多。
可能当时是想节约一些磁盘空间吧。
一个文件占一个簇,对于80M的硬盘是有些奢侈了。
作者: redtek
时间: 2006-12-10 00:38
zh159兄8楼《电子日记本》代码有意思~:)
今天分儿加光了,等有分的时候定给兄补上~:)
作者: 3742668
时间: 2006-12-10 02:35
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也有它自己的用途。
作者: mp3down
时间: 2006-12-10 03:42
Quote: |
Originally posted by redtek at 2006-12-9 09:36 AM:
真是精彩~~~
大家可以用它写《电子日记》了~:) |
|
真聪明!也真被你猜中一半。
感谢4楼lxmxn及5楼9527的回复使我的问题解决了!
还请各位达人帮忙一下我另一贴中的问题:“
求助:判断是否存在一个以上同类型文件并按条件执行”,详见该贴。