Board logo

标题: 请教专家:有关修改文件名的问题。。。。。谢谢 [打印本页]

作者: kumho     时间: 2006-2-20 10:44    标题: 请教专家:有关修改文件名的问题。。。。。谢谢

提议一:怎样将建立的文档用当前机器时间作文件名???
题议二:现有程序自动产生以当前时间(数字)为文件名的文档(我不会)。。。我想能不能建立一个批处理程序执行后,10秒以内复制该文档,但时间文件名加(延长)10秒。。例如
20051030105022.TXT复制为另20051030105032.TXT。。。谢谢
。。请注意文件名是时间

或者文档产生10秒钟时复制该文档但以当前时间作文件名

                                              感谢各位的关心
                                              期待专家的释疑
作者: Scott0902     时间: 2006-2-20 13:11
一、文件名可用 %UserName% (Win2000、XP系统才有效)
作者: willsort     时间: 2006-2-20 15:09
Re kumho:

      从你的表述上理解,你应该是想以日期+时间的紧凑数字格式命名文件,并复制一份原文件名产生时间+10秒后时间同样格式的文件。你的应用我猜是NT CMD。我的算法基本如下,有愿意实现和其他算法的朋友,不妨也提出自己的意见。

      首先,使用 for /f 剪接系统提供的环境变量 %date% %time%,而且需要确定并修改日期时间的显示格式(比如0前缀和12/24时制的问题)。

      其次,使用 choice / ping / for+set+if 延迟10秒,复制一份以当前日期时间重新命名的文件。
作者: tigerpower     时间: 2006-2-21 18:56
在xp下使用 GNU date

for /f "tokens=*" %i in ('.\date -R') do @for /f "tokens=*" %j in ('.\date -d "%i" +%Y%m%d%H%M%S') do @the_command>%j.txt 2>NUL&for /f "tokens=*" %k in ('.\date -d "%i 10 sec" +%Y%m%d%H%M%S') do @copy %j.txt %k.txt
作者: htysm     时间: 2006-3-4 11:55
真是高手中的高手。
作者: bagpipe     时间: 2006-3-4 13:05
第一种情况是计算机的名称作为文件名我们要用的环境变量是%comptername%
第二种情况看一下代码,时间不准,其他应该符合你的要求
@echo off
set /p i=填入准备拷贝的文件(完整路径):
set /p u=填入目标文件夹路径:
:backup
ping 1.1.1.1 -n 20 -w 400>nul
echo %date%%time%>1.txt
for /f "tokens=2,3,4,5,6* delims=-:. " %%i in (1.txt) do copy %i% %u%\%%i%%j%%k%%l%%m%%n.txt
echo 备份一次... ...
goto backup
作者: 3742668     时间: 2006-3-4 14:15
@echo off
set /a 日期 = %date:~0,4%%date:~5,2%%date:~8,2%
set /a 时间 = %time:~0,2%%time:~3,2%%time:~6,2%
echo 欢迎来到中国DOS联盟! >%日期%%时间%.txt

cls
echo 按任意键开始复制文件...
pause>nul

:copy
copy %日期%%时间%.txt %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.txt >nul
set /a num = %num% + 1
set string=已复制文件%num%次,要取消请按确定...

msg %username% /time:10  /w %string% >nul && set /a hflag = %time:~6,1% && set /a lflag = %time:~7,1%
set /a new = %time:~6,2%
if %hflag% == 5 set /a hflag = 0 && set /a new = %new% + 10
set /a old = %hflag%%lflag%
set /a flag = %new% - %old%
if %flag% LSS 10 goto :eof
goto copy

XP下运行,需要开启TermService服务(一般默认都是开启的),如果不是你可以修改:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService下的START键。。。
运行后先会生成你要求1里面要求的文件,然后提示你按任意键开始复制文件(要求2)
,如果你按下回车后就会弹出一个对话框提示你正在复制文件的信息,如时间(标题上),次数等等。。。如果你不想复制了只要点一下确定就OK了,命令行也会自动退出。。
作者: kumho     时间: 2006-3-4 15:14    标题: 谢谢,各位师兄

谢谢,各位师兄,问题解决了