自学批处理笔记(6)

2019-03-23 14:16

set str3=%var:*:=%%nums%

echo 删除var中的第一次出现的:号及其前面的所有字符 call echo %%str1:~0,15%% %%str3:~0,30%% echo\\

set str1=%%var:*\set str3=%var:*\

echo 替换var中的第一次出现的^\号及其前面的所有字符为ppp call echo %%str1:~0,15%% %%str3:~0,30%% echo.

set str1=%%var:*\\=ppp%%%num% set str3=%var:*\\=ppp%%nums%

echo 替换var中的第一次出现的\\号及其前面的所有字符为ppp call echo %%str1:~0,15%% %%str3:~0,30%% echo.

set str1=%%var:*:=ppp%%%num% set str3=%var:*:=ppp%%nums%

echo 替换var中的第一次出现的:号及其前面的所有字符为ppp call echo %%str1:~0,15%% %%str3:~0,30%% echo\\ goto :eof

3.再来补充一个我刚积累的一个用法:就是 set /p 变量名=内容

set /p a=我是谁

则结果为:我是谁????

又学到个:set /p a=<2.txt 将当前目录2.txt中的第一行内容赋值给变量a(这个知识好像前面已经出现过了)

4.dos一些系统的变量:(我们在定义变量是避免用这些变量名来命名变量)

多的要死百度一下会吓死掉,没必要记那么多,记一些常用的,其他的遇到了再说。 像date,time,cd,errorlevel等是必须的。还有就是%0到9这些都是默认的变量。 以下是来自批处理之家中一个对这些变量的解释: 另外还有一些系统变量,他们是代表一个意思,或者一个操作!

他们分别是%0 %1 %2 %3 %4 %5 ......一直到%9 还有一个%*

%0 这个有点特殊,有几层意思,先讲%1-%9的意思.

%1 返回批处理的第一个参数 %2 返回批处理的第二个参数

%3-%9依此推类

反回批处理参数?到底怎么个返回法?

我们看这个例子,把下面的代码保存为test.BAT然后放到C盘下

@echo off

echo %1 %2 %3 %4 echo %1 echo %2 echo %3 echo %4

进入CMD,输入cd c:\\

然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

注意中间的空格,我们会看到这样的结果:

我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

对比下代码,%1就是”我是第一个参数” %2就是”我是第二个参数” 怎么样理解了吧!

这些%1和%9可以让批处理也能带参数运行,大大提高批处理功能!

还有一个%* 他是什么呢?他的作用不是很大,只是返回参数而已,不过他是一次返回全部参数的值,不用在输入%1 %2来确定一个个的 例子 @echo off echo %*

同样保存为test.bat 放到C盘 进入CMD,输入cd c:\\

然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

可以看到他一次把全部参数都显示出来了

好现在开始讲那个比较特殊的%0

%0 这个不是返回参数的值了,他有两层意思!

第一层意思:返回批处理所在绝对路径 例子: @echo off echo %0 pause

保存为test.BAT放在桌面运行,会显示如下结果

\桌面\\test.bat\

他把当前批处理执行的所在路经打印出来了,这就是返回批处理所在绝对路径的意思

第二层意思:无限循环执行BAT 例子: @echo off net user %0

保存为BAT执行,他就会无限循环执行net user这条命令,直到你手动停止.

龙卷风补充:其实%0就是第一参数%1前面那个参数,当然就是批处理文件名(包括路径)。

以上就是批处理中的一些系统变量,另外还有一些变量,他们也表示一些功能, FOR命令中的那些就是,FOR变量已经说过,就不讲了. 再补充一个我遇到的一个系统变量:

%random% 取随机数:0 到32767 之间的任意十进制数字。如果我们要取0到10的随机数的话就:

set /a num=%random%%

也就是对这个变量进行求余计算。同理我们可以相同的方法取得任意区间的随机数了。

继续以前的dos命令:

十五. cls 作用:清屏用的没啥好说的,记了很常用

十六. tree 作用:以树图显示文件信息 格式:tree 盘符\\路径 参数 参数: /F 显示每个文件夹中文件的名称。 /A 使用 ASCII 字符,而不使用扩展字符。 例子:用tree查看e:盘并把结果保存到e下的1.txt中 @echo off

tree e:>e:\\1.txt

echo 成功生成1.txt!请查看 pause>nul

补充:一个技巧今天刚学到的:dos下 Tab 键的妙用

比如我要进入e:\\progres file这个文件夹我们要键入cd /d e:\\progres file很长啊打的累 其实我们只要cd /d e:\\pro然后按下Tab键就会自动帮你补齐了。自己试试看

自学批处理笔记(9) edit fc comp more start

十八. edit 编辑文本文档(这个不多说,批处理中貌似也少用) EDIT [/B] [/H] [/R] [/S] [/] [/?] [file(s)]

/B - Forces monochrome mode.

/H - Displays the maximum number of lines possible for your hardware. /R - Load file(s) in read-only mode. /S - Forces the use of short filenames.

/ - Load binary file(s), wrapping lines to characters wide. /? - Displays this help screen.

[file] - Specifies initial files(s) to load. Wildcards and multiple filespecs can be given.

十九. fc comp

FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn] [drive1:][path1]filename1 [drive2:][path2]filename2 FC /B [drive1:][path1]filename1 [drive2:][path2]filename2

/A 只显示每个不同处的第一行和最后一行。 /B 执行二进制比较。 /C 不分大小写。

/L 将文件作为 ASCII 文字比较。 /LBn 将连续不匹配的最大值设为指定 的行数。

/N 在 ASCII 比较上显示行数。 /OFF[LINE] 不要跳过带有脱机属性集的文件。 /T 不要将 tab 扩充到空格。

/U 将文件作为 UNICODE 文字文件比较。 /W 为了比较而压缩空白(tab 和空格)。 /nnnn 指定不匹配处后必须连续匹配的行数。 [drive1:][path1]filename1

指定要比较的第一个文件或第一个文件集。 [drive2:][path2]filename2

指定要比较的第二个文件或第二个文件集。

这是用来比较文件用的,comp也一样,这个我不做详细的介绍。貌似两个都不常用。自行了解。

二十. more (我不做详细介绍,用来显示文本内容) MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]] MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]

[drive:][path]filename 指定要逐屏显示的文件。 command-name 指定要显示其输出的命令 。 /E 启用扩展功能

/C 显示页面前先清除屏幕 /P 扩展 FormFeed 字符 /S 将多个空白行缩成一行

/Tn 将跳格键扩展成 n 个空格(默认值为 8) 命令行开关可以出现在 MORE 环境变量中。 +n 从第 n 行开始显示第一个文件

files 要显示的文件列表。 用空格分开列表中的文件。 如果扩展的功能已经启用,在 -- More -- 提示处会接受下列 命令:

P n 显示下 n 行 S n 略过下 n 行 F 显示下个文件 Q 退出 = 显示行号 ? 显示帮助行 显示下一页 显示下一行


自学批处理笔记(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第二代网络的研究与发展现状

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: