Stata-DOS:事半功倍的DOS命令汇总
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
连享会 · 2022空间计量专题
作者:严子凯 (中山大学)
邮箱:yanzk@mail2.sysu.edu.cn
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. DOS 命令简介
1.1 什么是 DOS 命令
1.2 DOS 命令的分类
1.3 在 Stata 中使用 DOS 命令
2. 常用 DOS 命令
2.1 md 命令—递归创建文件夹
2.2 tree 命令—制作目录结构
2.3 copy 命令—复制文件
2.4 del 命令—删除文件
2.5 findstr 命令—查找字符串
2.6 move 命令—移动
3. 参考资料
4. 相关推文
1. DOS 命令简介
1.1 什么是 DOS 命令
DOS 是 Disk Operating System (磁盘操作系统) 的缩写,是一套基于磁盘管理的操作系统,在微软推出 Windows2000 之前是最主流的操作系统。DOS 命令不仅以接近自然语言的简洁形式对系统操作,同时也能够有条不紊地监控并管理管理软、硬件资源。
我们可以通过调取 Windows 内置应用 Command 来启用 DOS 指令,并以最简洁、高效的方式完成绝大部分磁盘相关操作 (新建、复制、移动、删除文件/文件夹),因此在复杂文件管理中具有不可替代的优势。
1.2 DOS 命令的分类
DOS 是面向磁盘的操作命令,根据储存位置和数目分为内部命令、外部命令、批处理命令三类。由于该分类对 Stata 操作意义有限,故不再赘述。本文使用更为常用、根据操作对象类型的分类方法,将 DOS 命令归纳为:
目录操作,如 cd
、dir
、path
、tree
等;文件操作,如 copy
、more
、ren
、findstr
等;功能操作,如 cls
、move
、print
、sort
等;磁盘操作,如 format
、label
、share
、verify
等;网络操作,如 ftp
、net
、ping
、route
等;其他。
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. 参考资料
简书:DOS命令大全
爬虫俱乐部:Stata中五条特别好用的DOS命令
手册网:DOS函数参考手册
Stanislav Kolenikov, 2012, Scrambled Halton Sequences in Mata, Stata Journal, 12(1): 29–44. -PDF-
脚本之家:批处理命令教学之字符串排序 (sort)
IT百科:format命令的怎样写 format命令的格式和参数【详解】
曙光博客:Windows下route命令的用法
CSDN:DOS命令FINDSTR
CSDN:DOS命令篇(find 和 findstr)
CSDN:Net share 命令详解
CSDN:DOS上登陆FTP的命令和步骤 (ftp命令全集)
4. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 正则, m
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:文本分析-爬虫 Stata:正则表达式教程 用正则表达式整理文献:正文与文末一一对应 Stata爬虫-正则表达式:爬取必胜客 Stata: 正则表达式和文本分析 在 Visual Studio (vsCode) 中使用正则表达式 正则表达式语言 - 快速参考 专题:Python-R-Matlab Python: 使用正则表达式从文本中定位并提取想要的内容 专题:Markdown-LaTeX 用VScode正则表达式转换Markdown和LaTeX链接 专题:工具软件 Word技巧:如何使用正则表达式高效替换
课程推荐:因果推断实用计量方法
主讲老师:丘嘉平教授
🍓 课程主页:https://gitee.com/lianxh/YGqjp
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。