因此,如果我有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並複製intel文件夾下的所有文件和文件夾,而不復制intel文件夾本身。
EDIT2: 它看起來像這樣的工作,但它是緩慢的,因爲它發現每一個.inf和被複制過任何舊文件,如果有每個文件夾
@ECHO不止一個.inf文件ON
SETLOCAL ENABLEDELAYEDEXPANSION
CD \
CD驅動器
FOR/F「令牌= * delims = 「%% B IN('DIR/b/s/o:gen .inf')DO( XCOPY」%%〜dpB。*「」C:\ test \「/ e/c/h/y
如果有人有更清潔或更快的想法,請讓我知道。在那之前,我將不得不使用這個。
你有與同名文件的問題? – npocmaka
@npocmaka不,我的問題是,從HP或戴爾提取驅動程序後,我需要一個快速的方式來更新我的驅動程序存儲庫從Windows 7專業版或指向它的一個我的服務器。問題是,只有在找到.inf文件所在的位置才能完成此操作後,我才需要保持文件結構不變。我知道上面的腳本不起作用,我相信它需要另一個for循環(如果不是2)來做我正在尋找的東西,並希望從社區獲得關於想法的幫助。 – user2386455