2

因此,如果我有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 文件,它应该将整个文件夹复制到 test 以及所有子文件夹,然后继续下一个。因此,如果它看到第一个 .inf 文件位于 C:\drivers\sb3045\sb407.inf 它应该复制 sb3045 下的所有文件和文件夹,而不复制文件夹 sb3045 本身,然后移动到文件夹 C:\drivers\sb4055\drivers \oem\intel\id6077.inf 并复制 intel 文件夹下的所有文件和文件夹,而不复制 intel 文件夹本身。

EDIT2:看起来这会起作用,但它会很慢,因为它会找到每个 .inf 并且如果每个文件夹有多个 .inf 文件,则会复制任何旧文件

@ECHO 开启

SETLOCAL 启用延迟扩展

光盘\

光驱

FOR /f "tokens=* delims=" %%B IN ('DIR /b /s /o:gen .inf') DO ( XCOPY "%%~dpB .*" "C:\test\" /e / c /h /y

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

4

2 回答 2

0
for /R C:\WINDOWS\inf %%a in (*.inf*) do (
xcopy /qv /T  %%a .\test\
xcopy /qv  %%a .\test\
)
pause

这段代码对我有用。

于 2015-04-08T20:58:23.643 回答
0

尝试这个:

 FOR /R C:\drivers\ %%a in (*.inf *.cat *.sys) do xcopy /c /h /y "%%~dpa*" C:\test
于 2013-05-15T18:18:45.760 回答