首先,使用 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