Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理脚本要查找文件所在的目录,请将该目录和子目录中的所有文件复制到另一个目录_Batch File_Copy_Inf - Fatal编程技术网

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

Batch file 批处理脚本要查找文件所在的目录,请将该目录和子目录中的所有文件复制到另一个目录,batch-file,copy,inf,Batch File,Copy,Inf,因此,如果我有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\hserie

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

编辑2: 看起来这会起作用,但速度很慢,因为它会找到每个.inf文件,如果每个文件夹中有多个.inf文件,它会复制任何旧文件

@呼应

SETLOCAL ENABLEDELAYEDEXPANSION

光盘\

光盘驱动器

对于/f“tokens=*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

这段代码对我有效。

同名文件有问题吗?@npocmaka没有,我的问题是,从HP或dell提取驱动程序后,我需要一种快速的方法从windows 7 pro中更新驱动程序存储库,或者将其指向我的一台服务器。问题是,只有在找到驱动程序所在的位置后,我才需要文件结构保持完整.inf文件就是用来执行此操作的。我知道上面的脚本将无法工作,我相信它需要另一个for循环(如果不是2)做我想做的事情,并希望社区在想法上提供帮助。这确实如我所要求的那样有效,但我想我仍然不清楚我需要什么。我仍然需要的是,如果文件位于子文件夹中,那么我需要与inf文件相同的路径。它在sin上陷入无限循环gle folder.Hmm,我现在测试了无限循环,但发现没有,所以请从文件夹结构中显示更多内容。这看起来就像是用我的原始脚本输出到文本文件:[link]()来搜索.inf.cat&.sys文件。它被卡在C:\drivers下的第二个文件夹中,并以“%%~dpa*”循环但是,它确实通过了第一个文件夹。通常避免代码唯一的答案。考虑添加<代码>描述< /代码>,这有助于解释您的代码。谢谢。
for /R C:\WINDOWS\inf %%a in (*.inf*) do (
xcopy /qv /T  %%a .\test\
xcopy /qv  %%a .\test\
)
pause