65.9K
CodeProject 正在变化。 阅读更多。
Home

在 DOSbox 中删除子树

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2011 年 11 月 8 日

CPOL

1分钟阅读

viewsIcon

9678

使用 DOS 的 FOR 命令删除子树

我更喜欢使用命令行,因此我大部分时间都在 DOSbox (Windows 命令提示符) 中工作。我也更喜欢归档我的代码,这样我就不必完全依赖 Subversion 或可能发生也可能不发生的备份。目前,我正在归档到 CD;我复制 Projects 目录的内容。但我不想将 binobj 树写入 CD。rd (rmdir) 命令似乎不支持删除当前目录下方的目录。结果发现 DOS 的 FOR 命令可以用来做到这一点。我今天之前从未用过 FOR 命令。基本上,需要做的是 DIR /S /B bin. obj. 来获取要删除的目录列表,然后让 FOR 命令将每个目录传递给 rd /s /q 命令 -- 简单... 当然,这有点棘手,而且我把它变得更复杂... 只是因为这样。所以,我编写了两个 BAT 文件,第一个旨在作为通用脚本,用于在命令的输出上运行命令 -- PerformOn.bat
for /F "usebackq" %%f in (`%~2`) do call %~1 %%f %~3
0) /F "usebackq" 是必要的,用于指示 FOR 命令执行第二个参数中的命令 1) 波浪号 (~) 用于参数可能被引号 (") 包裹 -- 波浪号会移除引号 (我今天之前从未听说过这个) 2) 文件中需要使用两个百分号 (%%f),而其他地方则用于执行此特定功能 -- DelBin.bat
call PerformOn.bat "rd /s /q" "dir /s /b bin. obj." "> nul"
© . All rights reserved.