Quantcast
Channel: 看雪安全论坛
Viewing all articles
Browse latest Browse all 9556

【求助】dos命令如何得到当前目录和所有子目录的名字?

$
0
0
dos命令超级反人类,用c语言之类的东西几下就能写出来的东西,用dos命令死活都不会写.....

目标:我有一些doc和pdf文件,要把这些文件从目录A复制到目录B,并保留子目录相对结构不变。
并且如果有A.doc和A.pdf的话,就只复制A.doc到目录B相应位置。

举例来说就是
D:\test1\a.doc
D:\test1\a.pdf
D:\test1\b.pdf
D:\test1\c.doc
D:\test1\sub\d.doc
复制到
D:\test2\a.doc
D:\test2\b.pdf
D:\test2\c.doc
D:\test2\sub\d.doc

这样的规则。

高级语言我的方法是。
1.遍历所需目录和子目录
2.判断当前文件是否是文件夹,是就接着递归遍历文件夹,不是就判断文件扩展名。
3.如果是.doc文件,直接复制到目标目录,就是简单的把前面D:\test1替换成D:\test2,然后得到文件完整路径加名称,复制过去,没有目录就建立。
4.如果是.pdf文件,替换扩展名为.doc,并判断同名文件是否存在,存在就跳过,不存在就复制。

不知道dos命令怎么实现。
目前的实现

@echo off
set ext=.txq
set path="D:\test1"
for /r %path% %%f in (*) do (
rem 完整路径文件名
echo %%f
rem 文件名
echo %%~nf
rem 文件扩展名
echo %%~xf
)

我想问一下如何正则,以及如何把一个不存在的路径,直接建立出目录来。我知道md,rd之类的,不过还要做一个对应的目录结构遍历和生成,不知道该用什么思路。
比如说D:\test1下有我的文件,
D:\test2是我建的空目录,如果知道D:\test1\sub后对应建立出D:\test2\sub?
我想我应该先遍历一下test1下所有目录,并在test2下建出同样的,再遍历一下test1下所有文件,替换成对应test2完整路径名,再复制过去。这样行么?

该怎么做?:eek:

Viewing all articles
Browse latest Browse all 9556

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>