因此,如果我有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
如果有人有更清洁或更快的想法,请告诉我。在那之前,我将不得不处理这个问题。