因此,如果我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以及所有子文件夹,然后转到下一个文件夹。因此,如果它看到位于C:\ drivers \ sb3045 \ sb407.inf的第一个.inf文件,它应该复制sb3045下的所有文件和文件夹,而不复制文件夹sb3045本身,然后转到文件夹C:\ drivers \ sb4055 \ drivers \ oem \ intel \ id6077.inf并复制intel文件夹下的所有文件和文件夹,而不复制intel文件夹本身。
EDIT2: 看起来这样可行,但它很慢,因为它找到每个.inf并且正在复制任何旧文件,如果每个文件夹有多个.inf文件
@ECHO ON
SETLOCAL ENABLEDELAYEDEXPANSION
CD \
CD驱动程序
FOR / f“tokens = * delims =”%% B IN('DIR / b / s / o:gen .inf')DO( XCOPY“%% ~dpB 。*”“C:\ test \”/ e / c / h / y
如果有人有更干净或更快的想法,请告诉我。在那之前,我将不得不使用这个。
答案 0 :(得分:0)
试试这个:
FOR /R C:\drivers\ %%a in (*.inf *.cat *.sys) do xcopy /c /h /y "%%~dpa*" C:\test
答案 1 :(得分:0)
for /R C:\WINDOWS\inf %%a in (*.inf*) do (
xcopy /qv /T %%a .\test\
xcopy /qv %%a .\test\
)
pause
这段代码对我有用。