技术开发 频道

c# 调用.bat文件

 IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。

 因此下面的批处理文件是错误的:

 @ECHO OFF

 XCOPY C:\AUTOEXEC.BAT D:\

 IF ERRORLEVEL 0 ECHO 成功拷贝文件

 IF ERRORLEVEL 1 ECHO 未找到拷贝文件

 IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作

 IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作

 IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误

 无论拷贝是否成功,后面的:

 未找到拷贝文件

 用户通过ctrl-c中止拷贝操作

 预置错误阻止文件拷贝操作

 拷贝过程中写盘错误

 都将显示出来。

 以下就是几个常用命令的返回值及其代表的意义:

 backup

 0 备份成功

 1 未找到备份文件

 2 文件共享冲突阻止备份完成

 3 用户用ctrl-c中止备份

 4 由于致命的错误使备份操作中止

 diskcomp

 0 盘比较相同

 1 盘比较不同

 2 用户通过ctrl-c中止比较操作

 3 由于致命的错误使比较操作中止

 4 预置错误中止比较

 diskcopy

 0 盘拷贝操作成功

 1 非致命盘读/写错

 2 用户通过ctrl-c结束拷贝操作

 3 因致命的处理错误使盘拷贝中止

 4 预置错误阻止拷贝操作

 format

 0 格式化成功

 3 用户通过ctrl-c中止格式化处理

 4 因致命的处理错误使格式化中止

 5 在提示“proceed with format(y/n)?”下用户键入n结束

 xcopy

 0 成功拷贝文件

 1 未找到拷贝文件

 2 用户通过ctrl-c中止拷贝操作

 4 预置错误阻止文件拷贝操作

 5 拷贝过程中写盘错误

 3、IF STRING1 == STRING2

 建立TEST5.BAT,文件内容如下:

 @echo off

 IF "%1" == "A" formAT A:

 执行:

 C:\>TEST5 A

 屏幕上就出现是否将A:盘格式化的内容。

 注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。

 如:if [%1]==[A] 或者 if %1*==A*

 5、GOTO

 建立TEST6.BAT,文件内容如下:

 @ECHO OFF

 IF EXIST C:\AUTOEXEC.BAT GOTO _COPY

 GOTO _DONE

 :_COPY

 COPY C:\AUTOEXEC.BAT D:\

 :_DONE

 注意:

 (1) 标号前是ASCII字符的冒号":",冒号与标号之间不能有空格。

 (2) 标号的命名规则与文件名的命名规则相同。

 (3) DOS支持最长八位字符的标号,当无法区别两个标号时,将跳转至最近的一个标号。

 6、FOR

 建立C:\TEST7.BAT,文件内容如下:

 @ECHO OFF

 FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C

 运行:

 C:>TEST7

 执行以后,屏幕上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来(不包括隐藏文件)。

查看原文地址

0
相关文章