2017-03-05 92 views
0

我有很多的圖像文件的文件夾結構這樣的:複製文件匹配在文本文件中的字符串(S)不與文件夾結構,許多子文件夾到另一個目標文件夾

/Foldername1 (hohe Auflösung)/PictureRANDOMNAME1-FB.jpg 
/Foldername1 (hohe Auflösung)/PictureRANDOMNAME2-FB.jpg 
[...] 
/Foldername2 (hohe Auflösung)/PictureRANDOMNAME1-SW.jpg 
/Foldername2 (hohe Auflösung)/PictureRANDOMNAME2-SW.jpg 
[...] 
/Foldername3 (hohe Auflösung)/PictureRANDOMNAME1-SP.jpg 
/Foldername3 (hohe Auflösung)/PictureRANDOMNAME2-SP.jpg 
[...] 

現在我有Filelist.txt中與其中一些圖像文件的列表,像這樣:

PictureRANDOMNAME1, PictureRANDOMNAME3, [...] 

我想匹配的文本文件列表中的字符串(S)所有圖像的所有子文件夾複製到一個新的目的地(不移動它們),同時保持文件夾結構。

也許我需要一個批處理文件,我只需要將其與所有子文件夾一起復制到主文件夾中,再加上一個filelist.txt,執行它並獲得相同的文件夾結構,但只與另一個目標上的所需文件相同。

特別關於這可能是路徑中的空間和變音符號。

對不起,我的英語不好。我誠實地盡我所能。也許一些母語人士可以幫助編輯更容易理解。

+0

請注意,https://stackoverflow.com不是一個免費的腳本/代碼寫入服務。如果您告訴我們您迄今爲止所嘗試的內容(包括您已經使用的腳本/代碼)以及您卡住的位置,那麼我們可以嘗試幫助解決特定問題。您還應該閱讀[我如何提出一個好問題?](https://stackoverflow.com/help/how-to-ask)。 – DavidPostill

回答

0
@echo off 
setlocal 
:: This copies the tree structure from sourcedir to destdir 
xcopy /t /e sourcedir destdir 
:: This reads the filenames and copies the required files 
for /f "delims=" %%a in (filelist.txt) do (
for %%b in (%%a) do xcopy /s /e sourcedir\%%b* destdir 
) 

%%a從文件中獲取行。由於每行都以逗號分隔,因此%%b將在行上的每個名稱上執行xcopy

如果您願意,您可以將>nul添加到xcopy行的末尾以取消報告。

請注意,/表示winbatch中的交換機 - \是目錄分隔符。

此程序未經測試。我建議你在對付一個小的虛擬子目錄樹的情況下嘗試對它進行驗證,然後再依賴它來獲取實時數據。

相關問題