繁体   English   中英

批处理脚本以查找文件所在的目录,将该目录和子目录中的所有文件复制到另一个目录

[英]batch script to find the directory where a file is located, copy all files located in that directory and sub-directories to another directory

因此,如果我的C:\\drivers\\*带有*表示许多子文件夹,我想找出我的inf文件所在的位置,然后复制所有与我的inf文件所在目录相同的目录中的所有文件。子目录。

创建脚本将所有找到的.inf文件复制到我的目录很容易:

FOR /R C:\drivers\ %%a in (*.inf *.cat *.sys) do xcopy /c /h /y %%a C:\test

但是很难复制位于同一目录和所有子目录中的其他文件。

例如,如果inf文件位于C:\\ drivers \\ sbdrv \\ hseries \\ usb30 \\ amdhub \\ w7下,而sys文件位于x86的子文件夹中,则我需要将sys文件保存在同一子目录中-文件夹,但在C:\\ test \\ x86的目标目录下。

有任何想法吗?

编辑:也许这将使其更容易。 一旦在文件夹中找到一个.inf文件,它就应该复制整个文件夹以及所有子文件夹进行测试,然后移至下一个文件夹。 因此,如果它看到第一个.inf文件位于C:\\ drivers \\ sb3045 \\ sb407.inf,则应复制sb3045下的所有文件和文件夹,而不是复制sb3045文件夹本身,然后继续移动到文件夹C:\\ drivers \\ sb4055 \\ drivers \\ oem \\ intel \\ id6077.inf并复制intel文件夹下的所有文件和文件夹,而不复制intel文件夹本身。

EDIT2:看起来像这样可以,但是它很慢,因为它发现每个.inf文件,并且如果每个文件夹中有多个.inf文件,它会复制所有旧文件

@回声

SETLOCAL ENABLEDELAYEDEXPANSION

光盘\\

CD驱动器

FOR / f“令牌= * delims =” %% B IN('DIR / b / s / o:gen .inf')DO(XCOPY“ %%〜dpB 。*”“ C:\\ test \\” / e / c / h / y

如果有人有更清洁或更快速的想法,请告诉我。 在那之前,我将不得不处理这个问题。

尝试这个:

 FOR /R C:\drivers\ %%a in (*.inf *.cat *.sys) do xcopy /c /h /y "%%~dpa*" C:\test
for /R C:\WINDOWS\inf %%a in (*.inf*) do (
xcopy /qv /T  %%a .\test\
xcopy /qv  %%a .\test\
)
pause

这段代码对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM