Mam 2 pliki, z których 1 zawiera określone słowa kluczowe, a drugi zawiera listę ścieżek. Chcę wyszukać słowa kluczowe z pierwszej listy plików na liście ścieżek plików, a jeśli zostaną znalezione, skopiuj pliki z określonej ścieżki do określonego folderu docelowego.
Zawartość pierwszego pliku
Keyword1
Keyword2
Keyword3
Keyword4
Druga zawartość pliku
\\server\path...\Keyword1.txt
\\server\path...\Keyword1_0_1.txt
\\server\path...\Keyword2_0_1.txt
\\server\path...\Keyword2_1_9.txt
\\server\path...\Keyword3_1_0_1.txt
W tym celu muszę napisać skrypt wsadowy systemu Windows.
================================================== ==========
Niestety @ pimp-juice-it Nie jestem pewien, jak wkleić zrzut ekranu. Dlatego skopiuj i wklej wyniki poniżej -
d: \ Temp_Script \ Script> FOR / R "D: \ Temp_Script \ Source \ 33.txt"% G IN (55 *) DO ECHO "55" d: \ Temp_Script \ Script> CALL: FileExist "55" "D: \ Temp_Script \ Source \ 44.txt "d: \ Temp_Script \ Script> FOR / R" D: \ Temp_Script \ Source \ 44.txt "% G IN (55 *) DO ECHO" 55 "d: \ Temp_Script \ Script> WEZWANIE: FileExist „55” „D: \ Temp_Script \ Source \ 55.txt” d: \ Temp_Script \ Script> FOR / R „D: \ Temp_Script \ Source \ 55.txt”% G IN (55 *) DO ECHO ” 55 "d: \ Temp_Script \ Script> CALL: FileExist" 55 "" D: \ Temp_Script \ Source \ 55 - Copy (2) .txt "d: \ Temp_Script \ Script> FOR / R" D: \ Temp_Script \ Source \ 55 - Kopiuj (2) .txt "% G IN (55 *) DO ECHO" 55 "d: \ Temp_Script \ Script> CALL: FileExist" 55 "" D: \ Temp_Script \ Source \ 55 - Copy.txt "
jak widać słowo kluczowe „55” istnieje w UNC, ale nadal warunek nie sprawdza się w True w pętli FOR i przechodzi bezpośrednio do następnego UNC. Poniżej znajduje się kod -
: FileExist FOR / R "% ~ 2" %% G IN (% ~ 1 *) DO ECHO "% ~ 1"
źródło
Odpowiedzi:
Możesz raz przewinąć listę „słów kluczowych” i użyć iterowanych wartości słów kluczowych wraz z niektórymi dołączonymi znakami wieloznacznymi jako ciągami wyszukiwania, tj
*<Keyword>*
. Możesz przejść do drzewa katalogów każdej wartości ścieżki UNC z listy plików i wykonać operację kopiowania tylko do tych, które istnieją pasujące do szukanego słowa kluczowego.Skrypt partii
Dalsze zasoby
For / F
Połączenie
For / R
źródło
PAUSE
to,exit
kiedy to zrobisz, ale odpowiednio dostosuj do swoich potrzeb w razie potrzeby. W razie potrzeby chętnie pomogę w dostosowaniach, więc po prostu wyjaśnij i daj mi znać.Keyword1
a następnie masz ścieżkę serwera UNC bez nazwy pliku w pliku, tak po prostu\\server\path...
tak, a następnie powinna być nazwa pliku zeKeyword1
znakami w tej ścieżce, którą chcesz skopiowałem to istnieje. Lista plików ścieżki UNC z tą metodą NIE powinna zawierać nazw plików ze słowami kluczowymi, a jedynie ścieżkę, aby to działało. Być może dlatego nie działa, jeśli lista plików ścieżki UNC zawiera więcej niż tylko listę ścieżek folderów UNC.