![]() 高级会员
|
求一批处理:
要求: 在当前目录下复制”任意扩展名文件“自身并重命名(在原文件名后加_bak),如同文件名文件存在则自动在_bak后加(1)、(2)... 目的:想在TC里加这个批处理文件为按钮,方便修改文件时备份。 请朋友们帮忙,谢谢!! |
||
![]() |
批处理可以这样写: 代码:
@echo off set num=1 :st if not exist "%~n1_bak%~x1" (copy %1 "%~n1_bak%~x1") else ( if not exist "%~n1_bak(%num%)%~x1" (copy %1 "%~n1_bak(%num%)%~x1") else ( set /a num+=1 goto st ) ) |
![]() 高级会员
|
不知道楼主用不用AutoHotkey,用的话可以试下俺常用的备份单文件小脚本::blush;
代码:
^F2:: ;bak with timestamp. oldClip = %Clipboard% AppendName = %A_YYYY%%A_MM%%A_DD%.T%A_Hour%%A_Min%%A_Sec% StringTrimLeft, AppendName, AppendName, 2 PostMessage, 1075,3100,0,,ahk_class TTOTAL_CMD ; cm_CopySamepanel=3100;Copy within panel Clipboard = sendinput, ^c clipwait, 2 oringalName = %Clipboard% length := StrLen(oringalName) StringGetPos, position, oringalName, ., R, Offset if position = -1 { send, {end} } else { leftOffset := length - position send, {left %leftOffset%} } Clipboard = .%AppendName% sendinput, ^v sleep, 300 sendinput, {shift down}{left 14}{shift up} ClipBoard = %oldClip% return 在TC中选中test.bakup文件后,按下CTRL+F2,会弹出TC内部的“将复制到”对话框,填充名为“test.100824.T135322.bakup”并且选中“100824.T135434”。选中部分为按下Ctrl+F2时的时间 2010-08-24,13:54:34 此时:回车接受当前名;Esc取消复制;直接输入可以更改新备份名称。 |
||
![]() 关于笔记本机械硬盘数据恢复的求助帖,请您指点: https://bbs.et8.net/bbs/showthread.php?p=17310314#post17310314 |
![]() 热心会员
|
批处理可以这样写:
代码:
@echo off set num=1 :st if not exist "%~n1_bak%~x1" (copy %1 "%~n1_bak%~x1") else ( if not exist "%~n1_bak(%num%)%~x1" (copy %1 "%~n1_bak(%num%)%~x1") else ( set /a num+=1 goto st ) ) |
||
![]() 热心会员
|
|
||
![]() 高级会员
|
引用:
usercmd.ini: [em_filebak] cmd=路径\bakbat.bat param=%P%N path= 此帖于 2010-08-24 16:50:54 被 Huangwen 编辑. . |
|||
![]() 热心会员
|
不知道楼主在相同目录内备份文件多不多,就是 _bak(*) 里的数字有多大?
如果有几百,我原来写的代码执行效率会很低,我刚才在一台P4老爷机上试了一下,如果达到500个备份文件,执行时间会高达6、7秒。。。 如果要快可以换用以下代码: 代码:
@echo off if not exist "%~n1_bak%~x1" copy %1 "%~n1_bak%~x1"&goto :eof for /l %%A in (1,1,9999) do if not exist "%~n1_bak(%%A)%~x1" copy %1 "%~n1_bak(%%A)%~x1"&goto :eof 此帖于 2010-08-24 16:48:25 被 mouze 编辑. . |
||
![]() 高级会员
|
|
||