簡體   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