首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在命令行上运行"dir /b /s“时使用结果创建新目录

如何在命令行上运行"dir /b /s“时使用结果创建新目录
EN

Stack Overflow用户
提问于 2014-07-31 17:26:36
回答 2查看 37关注 0票数 1

我希望这在Windows批处理中是可能的:)

基于目录结构中的目录列表,是否可以获取该列表的结果,并在目录结构的/后/中间添加目录名以创建新目录?

例如,如果我向特定目录发出dir /b /s命令,它将列出该目录中的目录,如下所示:

代码语言:javascript
复制
E:\ftproot\MiddlewareIO>dir /b /s

E:\ftproot\MiddlewareIO\Benefits
E:\ftproot\MiddlewareIO\Blackboard
E:\ftproot\MiddlewareIO\Data-Warehouse
E:\ftproot\MiddlewareIO\EmplWorkerDemo
E:\ftproot\MiddlewareIO\IDM
E:\ftproot\MiddlewareIO\PayrollData
E:\ftproot\MiddlewareIO\PayrollGLData

我想从上面的目录列表中获取结果,并将目录名"Archive“附加到目录结构的中间,这将创建这个新的目录结构。由此产生的结构如下:

代码语言:javascript
复制
E:\ftproot\MiddlewareIO\Archive\Benefits
E:\ftproot\MiddlewareIO\Archive\Blackboard
E:\ftproot\MiddlewareIO\Archive\Data-Warehouse
E:\ftproot\MiddlewareIO\Archive\EmplWorkerDemo
E:\ftproot\MiddlewareIO\Archive\IDM
E:\ftproot\MiddlewareIO\Archive\PayrollData
E:\ftproot\MiddlewareIO\Archive\PayrollGLData

这个列表可能会增长,手动更新批处理文件可能会非常繁琐。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-31 17:54:57

代码语言:javascript
复制
@echo off

pushd E:\ftproot\MiddlewareIO

mkdir Archive

for /f "delims=\ tokens=1,2,3*" %%a in ('dir . /ad/s/b') do (
    mkdir "Archive\%%~d"
)

popd

还可以在创建目录之前检查目录是否存在:

代码语言:javascript
复制
@echo off

pushd E:\ftproot\MiddlewareIO

if not exist Archive\. mkdir Archive

for /f "delims=\ tokens=1,2,3*" %%a in ('dir . /ad/s/b') do (
    if not exist "Archive\%%~d\." mkdir "Archive\%%~d"
)

popd

新建议:过滤存档:

代码语言:javascript
复制
@echo off

pushd E:\ftproot\MiddlewareIO

if not exist Archive\. mkdir Archive

for /f "delims=\ tokens=1,2,3*" %%a in ('dir /ad /s /b ^| find /v "\Archive"') do (
    if not exist "Archive\%%~d\." mkdir "Archive\%%~d"
)

popd
票数 0
EN

Stack Overflow用户

发布于 2014-07-31 17:51:35

for命令是您的朋友。读取help for,然后在命令提示符中尝试

代码语言:javascript
复制
for /d %a in (*) do @echo %a

正如您所看到的,它在当前目录中的所有子文件夹后面。

因此,

代码语言:javascript
复制
for /d %a in (*) do @echo %cd%\Archive\%a

也许能满足你的需要

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25065294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档