龙空技术网

Windows系统bat批处理常用命令(一)

科技之鹰 1879

前言:

现在小伙伴们对“c调用批处理 带参数”大致比较注重,看官们都需要知道一些“c调用批处理 带参数”的相关内容。那么小编也在网摘上网罗了一些有关“c调用批处理 带参数””的相关资讯,希望各位老铁们能喜欢,小伙伴们快快来学习一下吧!

一、批处理中常用的命令:

@命令 :

加在每个命令行的最前面,表示运行时不显示这一行的命令行。

eg: @echo off // 不显示后续命令行及当前命令行

attrib 设置文件属性

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]

+ 设置属性。

- 清除属性。

R 只读文件属性。

A 存档文件属性。

S 系统文件属性。

H 隐藏文件属性。

[drive:][path][filename] 指定要处理的文件属性。

/S 处理当前文件夹及其子文件夹中的匹配文件。

/D 也处理文件夹。 /d 必须和/s一起使用

eg: attrib –h d:\ pagefile.sys 消除d:\ pagefile.sys的“隐藏”属性。

call 命令:

调用另一个批处理文件(如果不用 call 而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。

格式:CALL [drive:][path]filename [batch-parameters]

参数:[drive:][path]filename指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。

batch-parameters指定批处理程序所需的命令行信息

cd 目录切换命令

cd ..

copy(复制文件)

eg: copy c:\123 d:\abc

xcopy(复制文件夹)

/s 复制非空的目录和子目录。

/E 复制所有子目录,包括空目录。

/H 复制具有隐藏和系统文件属性的文件。默认情况下xcopy 不复制隐藏或系统文件。

/T 只复制子目录结构(即目录树),不复制文件。要复制空目录,必须包含 /e选项.

/Y 同名文件禁止提示您确认要覆盖现存的目标文件,直接覆盖。

DEL 删除命令

ERASE 删除命令

/P 删除每一个文件之前提示确认。

/F 强制删除只读文件。

/S 从所有子目录删除指定文件。

/Q 安静模式。删除全局通配符时,不要求确认。

/A 根据属性选择要删除的文件。

attributes

R 只读文件

S 系统文件

H 隐藏文件

A 存档文件

- 表示“否”的前缀

eg: del /ar /s d:\123\*.* 删除d:\123目录及其子目录下所有只读属性的文件。

dir 列举文件名命令

/P 分页显示

/B 只列出文件名称

/a 列出指定属性的文件

eg: DIR /a: attributes(冒号可以省略, attributes换成以下内容)

attributes

D 目录

R 只读文件

H 隐藏文件

A 准备存档的文件

S 系统文件

- 表示“否”的前缀

eg: /ah 列出隐含的文件

eg: /ad 列出文件夹

eg: /ad-h 列出所有的文件夹,但不包含隐含的文件夹。

/o

eg: DIR /o: sortorder (冒号可以省略,sortorder换成以下内容)

sortorder

N 按名称(字母顺序)

S 按大小(从小到大)

E 按扩展名(字母顺序)

D 按日期/时间(从先到后)

G 组目录优先

- 颠倒顺序的前缀

eg: dir /on 按照文件名的字母顺序排列

echo 输出命令:

打印此命令后的字符。字符不需要使用引号。其中%和^两个字符不能显示。

eg:echo 123>myfile.txt

echo off 命令:

表示在此语句后所有运行的命令都不显示命令行本身。即关闭 echo回显功能。可以使用 echo on 打开。

find 在文件中搜索字符串。

FIND [/V] [/C] [/N] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

/V 显示所有未包含指定字符串的行。

/C 仅显示包含字符串的行数。

/N 显示行号。

/I 搜索字符串时忽略大小写。

/OFF[LINE] 不要跳过具有脱机属性集的文件。

"string" 指定要搜索的文字串,

[drive:][path]filename 指定要搜索的文件。

eg: find "abc" d:\abc.txt在abc.txt中查找字符串abc的行。

forfiles 选择一个或一组文件(查询帮助信息 D:\>forfiles /?)

/p 指定的路径

/s 包括子目录

/m 查找的文件名掩码

/d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前

/c 后接运行的命令行,表示为每个文件执行的命令。命令字符串应该用双引号括起来。

eg: /c "cmd /c echo @file"。

下列变量可以用在命令字符串中:

@file - 返回文件名。

@fname - 返回不带扩展名的文件名。

@ext - 只返回文件的扩展。

@path - 返回文件的完整路径。

@relpath - 返回文件的相对路径。

@isdir - 如果文件类型是目录,返回 "TRUE";如果是文件,返回 "FALSE"。

@fsize - 以字节为单位返回文件大小。

@fdate - 返回文件上一次修改的日期。

@ftime - 返回文件上一次修改的时间。

eg: forfiles /p c:/ /s /m *.bat /c"cmd /c echo @file is a batch file"要列出驱动器 C:上的所有批处理文件

eg: forfiles /p c:/ /s /m *.* /d -100 /c"cmd /c echo @file :date >= 100 days"要列出驱动器 C: 上存在时间多于 100 天的所有文件.

eg: forfiles /p "%DATADIR%" /s /m *.* /d -14 /c "cmd /c del @path" 删除14天前的备份.

cmd 启动 Windows 命令解释器的一个新实例(查询帮助信息 D:\>cmd /?)

/C 执行字符串指定的命令然后终止

/K 执行字符串指定的命令但保留

/S 修改 /C 或 /K 之后的字符串处理(见下)

/Q 关闭回显

/D 禁止从注册表执行 AutoRun 命令(见下)

/A 使向管道或文件的内部命令输出成为 ANSI

/U 使向管道或文件的内部命令输出成为Unicode

/T:fg 设置前台/背景颜色(详细信息见 COLOR /?)

/E:ON 启用命令扩展

/E:OFF 禁用命令扩展

/F:ON 启用文件和目录名完成字符

/F:OFF 禁用文件和目录名完成字符

/V:ON 使用 ! 作为分隔符启用延迟的环境变量扩展。

md 创建文件夹

eg: md “d:\my game”

move 移动文件(夹) (MOVE可以跨分区移动文件,不可以跨分区移动文件夹。)

MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination 要移动至少一个文件:

MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2要重命名一个目录

/Y 取消确认改写一个现有目标文件的提示。

/-Y 对确认改写一个现有目标文件发出提示。

pause 命令:

运行此句会暂停批处理的执行并在屏幕上显示 Press any key to continue... 的提示,等待用户按任意键后继续。 如果不想显示以上英文提示信息,可以这样写: pause>null

rem 命令:

表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

:: 命令:

与 rem 命令等效。

RD [/S] [/Q] [drive:]path 删除文件夹(在不加任何参数时,rd命令只能删除空的文件夹。)

/S 除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。

/Q 安静模式,带/S 删除目录树时不要求确认

echo Y|rd /s c:\abc 删除abc文件夹,不询问

rmdir

ren [drive:][path]filename1 filename2. 重命名文件(夹),filename2只能是文件名,不能使用任何路径。

rename [drive:][path]filename1 filename2. filename2只能是文件名,不能使用任何路径。

二、 批处理文件的参数:(后续讲解)

批处理文件可以使用参数(相当于 DOS命令的命令行参数),这需要用到一个参数表示符 "%"。 %[1-9] 表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者 Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用 %1到%9顺序表示。

三、自定义变量:

自定义变量使用 set 命令。如:

@echo off

set var=value // 有空格的字符串也不需要引号。

echo %var%

pause

标签: #c调用批处理 带参数