DOS能量,超乎你想象!
本文作者:吴 浩,河南大学经济学院
本文编辑:温和铭
技术总编:李婷婷
Stata&Python云端课程来啦!
为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~爬虫俱乐部推出了Python编程培训课程、Stata基础课程、Stata进阶课程、Stata文本分析、正则表达式、网络爬虫、基本字符串课程。报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦。我们在这篇推文的最后提供了每门课程的课程二维码,大家有需要的话可以直接扫描二维码查看课程详情并进行购买哦~
引
言
DOS(Disk Operating System),是磁盘操作系统的简称。Stata磁盘操作命令涉及改变工作路径、构建新文件夹、压缩和解压缩文件、删除文件、备份文件和借助于其它Windows应用打开文件等。除此之外,Stata也可以通过“!”或“shell”直接调用Windows系统的DOS命令。下面的篇幅笔者将为大家推荐几个常用的DOS命令,希望有助于诸君。需要说明的是,Windows的DOS命令本身是不区分大小写的,以下内容中涉及Windows的DOS命令全部用大写,以便与Stata的命令有所区别。
一创建目录(mkdir)
命令mkdir
是make directory的缩写,即创建目录。需要指出的是在创建目录时应保证新目录在创建的位置中并不存在。使用mkdir
命令新建目录时,如果目录名前没有给出路径,则Stata默认在当前路径下创建。若要在指定路径下创建,则需要在目录名前附上具体路径。以下给出mkdir
命令的几种用法:
mkdir temp //在当前工作路径下创建名为temp的目录
mkdir d:/temp //在d盘下创建名为temp的目录
mkdir "temp 0" //当文件名中嵌入空格时,需添加双引号。该命令是在当前路径下创建名为"temp 0"的目录
如果文件夹已经存在,直接用mkdir
命令会导致Stata报错。为了防止因为命令出错而造成程序停下来,可以在mkdir
前面加上capture
。capture可以放置于任何命令前面,告诉Stata,capture之后的命令如果能执行则执行,万一不能执行也不要报错。
mkdir
每次只能创建一级子目录,如果要构建两级子目录,需要调用两次mkdir。比如,假定D盘没有temp子目录,我们可以通过以下命令分两次创建二级子目录temp1。
**构建二级子目录
cap mkdir d:/temp
cap mkdir d:/temp/temp1
这里,当我们调用Windows系统的MKDIR
命令时,只需一行命令就可以完成多级子目录的创建,具体示例如下:
**构建多级子目录
!MKDIR d:\temp\temp1\
shell MKDIR d:\temp\temp1\temp2\
二
查看目录文件(dir)
命令dir
是directory的缩写,用于查看Windows操作系统下的文件和文件夹。笔者将Stata出厂自带的数据auto.dta分别保存成不同名称的dta和txt格式的文件,然后为大家展示dir命令的具体用法。该过程如下:
**构建不同名称的数据文件
clear all
cap mkdir d:/temp/
cd d:/temp/
sysuse auto.dta
save myauto.dta,replace
save myauto1.dta,replace
save myauto12.dta,replace
save myauto123.dta,replace
save myautoa.dta,replace
save myautob.dta,replace
outsheet using myauto1.txt,replace
outsheet using myauto123.txt,replace
outsheet using myauto1234.txt,replace
outsheet using myauto12345.txt,replace
dir
dir myauto*.dta
dir myauto*.txt
dir myauto?.dta
dir myauto??.txt
save
和outsheet
命令,我们把auto.dta分别保存成10份不同名称的数据文件,然后使用dir
命令来查看。在Stata命令窗口输入dir ,运行该命令后便可以在结果窗口得到如下所示的内容:dir
结合进行使用。通配符是DOS(磁盘操作系统)的一种特殊表达形式,它可以实现文本的匹配。常用的通配符有"*"和“?”。通配符“*”可以匹配零个、任意单个或任意多个连续字符。通配符“?”能匹配零个、任意单个字符。dir
命令是支持通配符的,下面将为大家展示通配符与dir
命令的结合使用,以及相应的效果。dir
与通配符“ * ”的结合使用:dir myauto*.dta
。由于通配符“*”可以匹配任意字符,便可以在结果窗口显示所有以myauto为开头的dta文件,具体如下所示:同样,我们也可以使用命令dir myauto*.txt
来显示所有以myauto为开头的txt文本文件,其结果如下所示:
(2)dir
与通配符“ ? ”的结合使用:
dir myauto?.dta
时会在结果窗口得到如下所示的4个以myauto开头的数据文件。(3)dir
与通配符“ ?? ”的结合使用:
dir myauto??.txt
时, 结果窗口只会显示一个以myauto开头的文本文件。三
删除目录(rmdir)
rmdir
命令用于删除目录,Stata自带的rmdir
命令只可以删除空的目录,如果目录名称包含嵌入的空格或特殊字符,则必须使用双引号。以下给出该命令的几种用法:
rmdir temp //删除当前路径下名为temp的空目录
rmdir d:/temp //删除d盘下名为temp的空目录
rmdir "d:/temp 01" //若目录名称嵌入空格,需使用双引号。该命令用于删除d盘下名为“temp 01”的空目录
当要删除的目录中存在文件时,Stata自带的rmdir
命令已无法完成,此时要么先删除其中的文件,要么借助“!”或"shell"调用Windows系统下的DOS命令RMDIR来删除此类目录。例如:删除 d:/temp/temp1/ 文件夹以及其子文件所要用到的命令为!RMDIR d:\temp /s/q
,其中/s参数指的是一并删除该文件夹下所有文件,在每次删除时都会弹出提示“是否删除。/q参数指的是静默删除,不再提示我们是否删除某个文件。
四
删除文件(erase、!DEL)
本小节笔者为大家介绍两个删除文件的命令:erase
、!DEL
。其中erase
为Stata自带的命令,该命令一次只能删除一个文件且必须给出文件的类型。!DEL
为Windows系统下的DOS命令,该命令可以搭配通配符一起使用,因此能做到批量删除文件。我们使用Stata出厂自带的auto.dta数据,来展示这两个命令的用法并做出相关说明:
clear all
cd D:/temp
sysuse auto.dta
save auto1.dta,replace
save auto2.dta,replace
save auto3.dta,replace
outsheet using auto1.txt,replace
outsheet using auto2.txt,replace
outsheet using auto3.txt,replace
erase auto2.dta //删除文件"auto2.dta"
!DEL auto*.txt //删除所有以auto开头的txt文件
!DEL auto?.dta //删除文件"auto1.dta"和"auto3.dta"
五
结束任务或进程(!TASKKILL)
taskkill
命令用来结束任务或者进程。这是一个DOS命令,我们仍然使用“!”或 ”shell“来调用Windows系统下的TASKKILL命令。taskkill
的具体命令规则如下:
taskkill [/s Computer] [/u Domain\User [/p Password]]] [/fi FilterName] [/pid ProcessID]|[/im ImageName] [/f][/t]
/s Computer:指定远程计算机名称或IP地址(不能使用反斜杠)。默认值是本地计算机。
/u Domain\User: 运行具有由User或Domain\User指定用户的账户权限命令。默认值是当前登录发布命令的计算机的用户权限。
/p Password:指定用户账户的密码,该用户账户在/u 参数中指定。
/fi FilterName:指定将要终止或不终止的过程的类型。
/pid ProcessID:指定将终止的过程的过程ID。
/im ImageName:指定将终止的过程的图像名称。
/f:指定将强制终止的过程。
/t:指定终止与父进程一起的所有子进程,常被认为是“树终止”。
/?:在命令提示符处显示帮助。
以下三个例子将为大家展示该命令的具体用法。需要说明的是,鉴于多数用户使用的都是Windows操作系统,下述三个例子均是建立在该操作系统之下。
**调用word打开文件并关闭
clear
cd d:/temp
shellout dream.docx //shellout命令调用word打开文件。
sleep 10000
!TASKKILL /im winword.exe /f //关闭word
**调用记事本打开文件并关闭
clear all
cd d:/temp
sysuse auto.dta
outsheet using auto.txt
shellout auto.txt //shellout命令调用记事本打开文件
sleep 10000
!TASKKILL /im notepad.exe /f //关闭记事本
**播放音乐
clear
cd d:/temp
shellout 二泉映月.mp3 //使用wmplayer播放器播放音乐。
checksum d:\temp\二泉映月.mp3
local time = (r(filelen)*1.8/25700*1000)+5
sleep `time'
!TASKKILL /im wmplayer.exe /f //关闭wmplayer播放器
到这里今天的分享就结束了。想告诉大家的是关于DOS命令其实还有很多内容,今天只是给大家带来了其中较为常用的几个命令。正所谓万丈高楼平地起,希望这些基础的DOS命令能服务于大家今后的Stata学习当中。
腾讯课堂课程二维码
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
Seminar丨肤色和信用:种族、监管和金融服务的质量
爬虫实战丨走进哈利波特的魔法世界
数据集合并的新路子-frlink命令
Seminar丨附近的公司:利用卫星图像研究本地信息优势线性同余法生成伪随机数
[技能篇]多线程爬虫
“好哭”是衡量一部好电影的标准吗?
Stata&Python云端课程来啦!带你了解Stata中的矩阵
Seminar|总统的朋友:政治关联与企业价值爬虫实战 | 爬取中国天气网
爬虫实战 | 爬取东方财富网经济数据——以居民消费价格指数(CPI)为例
Seminar|媒体关联董事对融资和外部治理的影响神奇的组内交叉合并 PDF分章节转TXT并实现可视化——以胡景北知青日记1971至1978年为例万物皆可开——shellout妙用
无处不在的系列配置项|从零开始的Pyecharts(三)
使用Python制作自动聊天机器人
fillin一下,平衡回来~
order命令——快速改变变量顺序的利器 Ajax应用场景——以获取雪球网港股代码及公司名称为例播放列表中的歌单排行
在Stata中轻松运用program编写命令
Meta Analysis in Stata17芒果TV视频弹幕爬取之《我在他乡挺好的》
Stata中的判断神器——confirm命令
cngdf——名义GDP与实际GDP之间的摆渡船最近《扫黑风暴》有点火爆!我从豆瓣评论中发现了这些……
随机森林-Random Forest
复原之神--preserve&restore
合并,“纵”享新丝滑:frameappend & xframeappend什么是全局配置项?|从零开始的Pyecharts(二)帮你拿下数据可视化|从零开始的Pyecharts
关于我们
微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。