批处理命令怎么写( 四 )


它的备份风格是在原来的扩展名前加"~"形成新的扩展名
比如main.pas在备份后就成了main.~pas
这样的功能用批处理也可以完成
数据库我现在还是个菜鸟
但是我想你的意思是把一些数据源备份吧
这样的话可以采用更改扩展名的办法
这样直接运行是打不开的
可以起到保护文件的作用
也可以在原来的名字前加前缀
比如备份文件前加"BAK-"也行
不知道你喜欢哪种方法
我觉得更改扩展名更好
下边我就实现这个方法
我现在不知道你所要处理的文件是什么扩展名
为了是程序更具有通用性
我留出空间让楼主自行更改
文件Backer.bat:
@echo off
if %1.==. goto end
if %2.==. goto bak
goto unBak
:bak
for %%I in (*) do @if %%~xI==.%1 copy /Y %%I %%~nI%%~xIB
goto end
:unBak
for %%I in (*) do @if %%~xI==.%1B (copy /Y %%I %%~nI.%1 && del %%I)
:end
比如要执行备份所有的txt文件 , 则运行命令
backer txt
则所有的txt文件都有了一个相应的以txtB为扩展名的备份
如果要将备份还原
那么打上命令
backer txt sss
则备份文件被还原
同时删除备份文件
其中sss是任意参数
但是这样还是没有实现自动
我们将另外建一批处理来调用它
文件bak.bat:
@echo off
call backer txt
call backer doc
call backer exe
call backer bmp
扩展名很多
加上你想要的
文件return.bat
@echo off
call backer txt h
call backer doc h
call backer exe h
call backer bmp h
就好了
由于楼主你说得不是十分清楚
我也就先说这么多了
备份和还原其实也可以做到同一个文件里
也许你要处理还不只是单一目录
而是所有的目录包括子目录
这可以用for命令解决
需要的话我再帮你
5. 如何运用批处理调用cmd,并写入命令 用批处理解决 , 
文本输入指令内容 , 
然后把文本.txt改为.bat或另存为.bat
@echo off
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
for /f "delims=. tokens=1-4" %%a in ("%ip%") do (
call set /a xz=%%d-1
call route add 0.0.0.0 mask 0.0.0.0 %%a.%%b.%%c.%%xz%%
)
exit >nul
6. 如何写一个批处理命令 定义:用户一次提交一系列命令 , 由系统自动地依次 逐条执行 。命令逐行写入一个文本文件 , 这个文件叫批处理文件 , 批处理文件必须以 BAT 为扩展名 。一 .ECHO 1. 内部命令 2. 功能:显示或隐藏被执行的命令  ,  或在屏幕上显示信息 3. 格式: ECHO ON | OFF | MESSAGE 4. 说明:@等价于 ECHO OFF 5. 例如: ABC.BAT 的内容为 @ ECHO OFF ECHO 12 ECHO ON @ECHO 34 ECHO 56 ECHO OFF ECHO 78 @ECHO 90
12 34 ECHO 56 56 ECHO OFF 78 90 二 .PAUSE 1. 内部命令 2. 功能:暂停批处理文件的执行 , 显示 “press any key to continue …” (按任意键继续) , 等到用户按任意键后继续执行后继命令 3. 格式: PAUSE 三 .REM 1. 内部命令 2. 功能:注释 3. 格式: REM remarks 4. 说明:对批处理文件中的内容进行说明;在寻找故障或做一些试验时 , 常会需要使批处理文件中的某一命令暂时不起作用 四 . 参数 1. 文件中要有专门的符号来表示使用参数的位置 , 这些符号是 %1 、%2 …… %9  , 依次表示第 1 个、第 2 个 …… 第 9 个参数 , 另外 , 如果需要的话 , 可以用 %0 表示批处理命令中除各个参数以外的部分 2. 例如:批处理文件 BAKDOC.BAT 的内容为: Attrib –r d:\bak\%1.doc Copy c:\winword\%1.doc d:\bak Attrib +r d:\bak\%1.doc 五 .IF 1. 内部命令 2. 功能:在指定条件成立的情况下执行指定的命令 3. 格式: IF [NOT] EXIST[drive:][path]filename command IF [NOT]string1==string2 command 4. 说明: command 只能是一条命令;整个 IF 命令 , 包括 command 在内 , 必须写在同一行 5. 例如: if exist c:\scandisk.log copy c:\scandisk.log c:\log 六 .GOTO 1. 内部命令 2. 功能:转向标有指定标号的命令行 , 从该标号的下一行开始继续执行 3. 格式: GOTO label 4. 说明: label 是标号 , 由 1 至 8 个字符组成 5. 例如:批处理文件 LOOP.BAT 的内容为: @echo off :again echo no end goto again 七 .FOR FOR 命令中的变量 %variable 必须增加一个百分号 , 写成 % %variable  , 其他格式和功能都与直接在命令行使用时一样 八 .START 1. 外部命令 2. 功能:在一个新的窗口中启动运行程序 3. 格式: START [/M][/MAX][/W] [drive:][path] filename[parameters] 4. 说明: parameters 被启动程序所需的参数 ,  /M 以最小化方式运行 ,  /max 以最大化方式运行 ,  /w 被启动程序运行结束后才继续执行批处理文件中的后继命令 5. 例如: start /max c:\windows\notepad.exe 九 .CALL 1. 内部命令 2. 功能:在批处理文件中插入执行另一个批处理文件 3. 格式: CALL [drive:][path]filename[parameters] 4. 说明: parameters 子程序所需的参数 5. 例如:用批处理的方法删除 F :根目录下 USER00 、USER01 、…… 、USER99 这 100 个子目录中的所有内容 , 但保留 这些子目录 。编写批处理文件 DELE1.BAT  , 内容为: For %%a in (0 1 2 3 4 5 6 7 8 9 ) do deltree /y f:\user%1%%a\*.* 再编写批处理文件 DELE.BAT  , 内容为: For %%b in (0 1 2 3 4 5 6 7 8 9 )do call dele1 %%b