Stata-DOS:事半功倍的DOS命令汇总

发布时间:2022-08-31 阅读 1152

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:严子凯 (中山大学)
邮箱yanzk@mail2.sysu.edu.cn


目录


1. DOS 命令简介

1.1 什么是 DOS 命令

DOS 是 Disk Operating System (磁盘操作系统) 的缩写,是一套基于磁盘管理的操作系统,在微软推出 Windows2000 之前是最主流的操作系统。DOS 命令不仅以接近自然语言的简洁形式对系统操作,同时也能够有条不紊地监控并管理管理软、硬件资源。

我们可以通过调取 Windows 内置应用 Command 来启用 DOS 指令,并以最简洁、高效的方式完成绝大部分磁盘相关操作 (新建、复制、移动、删除文件/文件夹),因此在复杂文件管理中具有不可替代的优势。

1.2 DOS 命令的分类

DOS 是面向磁盘的操作命令,根据储存位置和数目分为内部命令、外部命令、批处理命令三类。由于该分类对 Stata 操作意义有限,故不再赘述。本文使用更为常用、根据操作对象类型的分类方法,将 DOS 命令归纳为:

  • 目录操作,如 cddirpathtree 等;
  • 文件操作,如 copymorerenfindstr 等;
  • 功能操作,如 clsmoveprintsort 等;
  • 磁盘操作,如 formatlabelshareverify 等;
  • 网络操作,如 ftpnetpingroute 等;
  • 其他。

1.3 在 Stata 中使用 DOS 命令

在 Windows 系统中,我们需要先打开内置应用 Command (快捷键 Windows + R),再输入 DOS 指令执行。在 Stata 中,我们只需要在 DOS 命令前添加英文版本的 ! 即可执行。

2. 常用 DOS 命令

2.1 md 命令—递归创建文件夹

!md 路径

md 命令的用处是创建文件夹,其最大的优势是递归创建文件夹,即同时生成多层级文件。例如,在路径 D:/Stata 下创建文件夹 new_1 的同时,在文件夹 new_1 内创建新文件夹 subnew_1,Stata 自带的 mkdir 命令便会报错,原因是 new_1 文件夹并不存在。

因此,我们需要输入两行 Stata 命令,即第一步生成文件夹 new_1,第二步再生成文件夹 subnew_1。不过,DOS 指令能够一步到位,直接输入如下命令,便可顺利在 Stata 内实现上述目的。

. * Stata 命令错误做法
. mkdir "D:/Stata/new_1/subnew_1"
could not create directory D:/Stata/new_1/subnew_1

. * Stata 命令正确做法
. mkdir "D:/Stata/new_1/"
. mkdir "D:/Stata/new_1/"

. * DOS 命令做法
. !md "D:/Stata/new_1/subnew_1"

2.2 tree 命令—制作目录结构

!tree 路径 [/f] [/a] >> 输出文件

tree 命令能够生成指定工作路径下的所有文件结构。其中,参数 /f 显示每个目录中文件的名称,/a 指定使用文本字符而不是图形字符来显示链接子目录的行,>> 输出重定向操作符,将结果都输出到文件内。

. !tree D:\Stata /f >> output.txt

2.3 copy 命令—复制文件

!copy [/d] [/v] [/n] [/y | /-y] [/z] [/a | /b] <source> [/a | /b] [+<source> [/a | /b] [+ ...]] [<destination> [/a | /b]]

将某个路径下一个或多个文件复制到另一路径下。其中,

  • /d 允许复制的加密文件保存为解密文件;
  • /v 验证新文件是否写正确;
  • /n 复制名称超过八个字符或文件扩展名超过三个字符的文件时,使用简短的文件名;
  • /y 禁止提示确认要覆盖现有目标文件;
  • /-y 提示您确认要覆盖现有目标文件;
  • /z 在可重新启动模式下复制联网文件;
  • /a 指示 ASCII 文本文件;
  • /b 指示二进制文件;
  • <source> 指定要复制文件或一组文件的位置,必选项;
  • <destination> 指定复制文件或一组文件的目标位置,必选项。
. sysuse auto, clear 
. save auto, replace 
. !copy "D:/Stata/auto.dta" "D:/Stata/new_1/auto.dta"

2.4 del 命令—删除文件

del [drive:][path]fileName[ ...] [/p] [/f] [/s] [/q] [/a[:attributes]]

删除指定文件。其中,

  • drive 指定要删除文件的驱动器;
  • path 指定要删除文件的路径;
  • /p 提示确认是否删除指定文件;
  • /f 强制删除只读文件;
  • /s 从当前目录及其所有子目录中删除指定文件,并显示正在被删除的文件名;
  • /q 不提示确认删除指定文件;
  • /a 根据指定的属性删除文件;
  • attributes 指定文件属性,r 只读,a 存档,s 系统,h 隐藏,前缀 - 表示 “非”。
!del "D:\Stata\new_1\auto.dta" /f/s/q

2.5 findstr 命令—查找字符串

!findstr [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file] [/C:string] [/G:file] 
[/D:dir list] [/A:color attributes] [/OFF[LINE]] strings [[drive:][path]filename[ ...]]

在文件中寻找字符串,相关参数如下:

参数 描述
/B 在一行的开始配对模式
/E 在一行的结尾配对模式
/L 按字使用搜索字符串
/R 将搜索字符串作为一般表达式使用
/S 在当前目录和所有子目录中搜索匹配文件
/I 指定搜索不分大小写
/X 打印完全匹配的行
/V 只打印不包含匹配的行
/N 在匹配的每行前打印行数
/M 如果文件含有匹配项,只打印其文件名
/O 在每个匹配行前打印字符偏移量
/P 忽略有不可打印字符的文件
/OFF[LINE] 不跳过带有脱机属性集的文件
/A:attr 指定有十六进位数字的颜色属性
/F:file 从指定文件读文件列表
/C:string 使用指定字符串作为文字搜索字符串
/G:file 从指定的文件获得搜索字符串
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字
符号 意义
. 通配符:任何字符
* 重复:前一字符或类别出现零或零以上次数
^ 行位置:行的开始
$ 行位置:行的终点
[class] 字符类别:任何在字符集中的字符
[^class] 补字符类别:任何不在字符集中的字符
[x-y] 范围:在指定范围内的任何字符
\x Escape:元字符 x 的文字用法
<xyz 字位置:字的开始
xyz> 字位置:字的结束

通配符和重复符规则:从文件 file.txt 中查找任意字符,不包括空字符和空行。

!findstr . file.txt

从文件 file.txt 中查找任意字符,包括空字符和空行。

!findstr .* file.txt

字符集规则:从文件 file.txt 中查找包括任意字符的字符串或行。

!findstr "[a-zA-Z]" file.txt

从文件 file.txt 中查找可匹配 Ma1Y、Mb1Y、Mc1Y、Ma2Y、Mb2Y、Mc2Y、Ma3Y、Mb3Y、Mc3Y 的行。

!findstr "M[abc][123]Y" file.txt

行首、行尾符规则:从文件 file.txt 中查找行首为 step 字符串的行。

!findstr "^step" file.txt

从文件 file.txt 中查找行尾为 step 字符串的行。

!findstr "step$" file.txt

减法规则:要过滤掉 file.txt 中纯数字的行。

!findstr "[^0-9]" file.txt

单词前缀后缀定位规则:从文件 file.txt 中查找以 step 为前缀的字符串的行。

!findstr "\<echo" file.txt

从文件 file.txt 中精确查找单词 step。

!findstr "\<step\>" file.txt

2.6 move 命令—移动

!move [/Y | /-Y] [drive:][path]filename1[,...] destination

既可以移动文件,也可以给文件重命名。具体参数如下:

参数 描述
drive: 指定移动文件的驱动器
path 指定移动文件的路径
destination 指定文件的新位置
/Y 取消确认覆盖一个现有目标文件的提示
/-Y 对确认覆盖一个现有目标文件发出提示
. * 移动文件
. !move "D:\Stata\auto.dta" "D:\Stata\new_1\auto.dta"

. * 移动并重命名文件
. !move "D:\Stata\new_1\auto.dta" "D:\Stata\auto_new.dta"

3. 参考资料

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 正则, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh