Dos命令
bat和cmd学习
bat和cmd的代码语法类似。这里我们默认都是bat文件
合并多个txt文件:
- 首先新建一个记事本,在其中写入:type *.txt>>all.txt。然后保存为合并.bat(也就是批处理文件)。放到你的txt所在的文件夹内,双击就会出现合并好的all.txt文件。参考
- 上面的 *.txt是采用通配符的操作,而实际上对于简单的,我们可以写成copy a.txt+b.txt mmm.txt/b,即合并 a.txt和b.txt得到一个mmm.txt。参考
bat定时关机 ,我搜了,无效。可能和系统有关,需要设定一些东西。
Dos命令
- 参考资料
- 搜索栏,输入cmd,得到C:\Users\hujie>,再后面输入dir,就得到当前目录下的所有文件
- 一个点是当前目录,两个点是上一个目录。
- 如果对命令用法不熟悉,输入cd /?或者dir /?就可以得到所有的用法信息,相当于help。
- cd video表示进入当前文件目录下的video文件夹;cd ..表示回到上一个目录;cd \表示进入根目录
- 任何目录下,输入cd "c: \user\toutiao\"都强制跳转到新输入的目录中(不要引号也可以)。
- ver输出windows版本
- time回车,得到当前时间,还有设置新时间的提示。
- date和time一样的,要么显示当前,要么修改时间。
- cls清除屏幕,相当于matla的clc
- pause,输入这个命令之后,会提示你“按任意键继续”。否则程序执行完,一闪就消失了。
- 打开exe文件。例子,桌面谷歌图标,邮件属性-快捷方式-目标,得到"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files 然后新建一个bat文件,第一行输入上面的这一长串(可以不要--allow-file-access-from-files ),第二行输入pause。保存之后,双击这个bat文件就会运行谷歌浏览器。
文件操作
- copy,不知道怎么用用copy /?
- copy calc.exe 1.exe 复制当前目录下的calc.exe的到当前目录,而且重新命名为1.exe
- move 1.exe 2.exe 将当前目录下的1.exe移动为2.exe(其实是替换),当然可以增加移动到哪里的目录,而不是当前目录,这样就不会改变当面目录中的1.exe。
- del 2.exe 删除刚才生成的 2.exe。(用dir查看结果) 注意这只是删除可执行文件的方法,不是删除文件夹的方法。
- 复制文件copy calc.exe abc\1.exe 将当前目录下的calc.exe复制到abc目录(当前目录下的子目录)下的1.exe。
- rd命令可以删除文件夹,C:>rd abc /S 删除c盘的abc文件夹,C:>rd abc /Q也是删除abc。不同之处在于/Q是安静模式,不需要确认。
- ren重命名,ren calc.exe 1.exe将当前的calc.exe重命名为1.exe。(效果和move一样,见3)
- 复制文件和目录树(可以理解为文件夹中含有文件夹)xcopy aaa c:\xyz 复制aaa文件夹到c盘根目录为xyz文件夹。如果包含空目录,那么命令末尾加上/E。
简单程序的编写
- 新建一个bat文件,echo off表示关闭后面的命令显示(不在DOS窗口显示,但是会运行,有结果就输出结果显示)。
- 默认的状态是echo on,显示所有的命令。
- @echo off 这一行自己也不显示了。@只对某一行作用。
- echo %temp% (echo是输出环境变量,%temp%是环境变量的格式) cd %temp% 进入环境变量目录。
- 环境变量是临时目录,里面有很多没用的东西可以清理。
- echo %username%得到的是hujie
- set abc=123回车,然后输入set回车(可以在一堆结果中找到abc),也可以输入set abc回车得到简洁的结果。如果set /A abc =3333,那么等于说重新赋值了。如果再次输入set /A abc=abc +1,那么得到的结果为3334。
例子-1
@echo off #不现实后面的代码
dir %temp%
echo ENTER RENYI JIAN #按任意键开始
pause
rd %temp% /S /Q #不用确认/Q
echo 删除完毕,按任意键显示 临时目录文件夹
dir %temp%
pause
例子-2
#展示输入一个数,输出这个数乘以2的结果#
@echo off
echo Please input your number
set /P user=
echo Your number is %user%
set /A user=user*2
echo Your number times 2 is %user%
pause
#结果#
Please input your number
5
Your number is 5
Your number times 2 is 10
请按任意键继续. . .
例子-3-python和dos结合
#python程序
import time
time.sleep(3600) #等待3600后执行后续程序
import os
os.system("AD.bat < aaa.txt > log") #调取aaa.txt中的文件到AD这个bat,DOS窗口显示的内容保存在log文件中
#DOS程序,实现输入两个数,输出两个数的结果
@echo off
echo Please input your number
set /P your=
echo Your number is %your%
echo Please input his number
set /P his= echo His number is %his%
set /A user=your*his echo
Your number times his humber is %user%
pausec
参考资料:
(1) 如何在 Bat 文件中睡眠或等待 X 秒
(2) Python 调用 bat 文件,请问怎么传参