ewenement Opublikowano 19 Czerwca 2015 Zgłoś Udostępnij Opublikowano 19 Czerwca 2015 Witam potrzebuję zrobić skrypt w cmd który wyszukiwałby w pliku .txt np. "test1" i wtedy kopiuje plik i daje mu nazwę nazwa1 a jak znajdzie w pliku test2 daje mu nazwę nazwa2 Odnośnik do komentarza
maggreg Opublikowano 20 Czerwca 2015 Zgłoś Udostępnij Opublikowano 20 Czerwca 2015 Jeżeli nie ma żadnych założeń dodatkowych to najprościej: @for /F "tokens=*" %%G in ('dir /a-d /b /s /w d:\katalog\') DO (call :do_set "%%G") @goto :eof :do_set @find /c "text1" %1 && ( ren %1 n1.txt ) @find /c "text2" %1 && ( ren %1 n2.txt ) @find /c "text3" %1 && ( ren %1 n3.txt ) @goto :eof ale tak forma nie przewiduje powtórzeń ani wewnątrz pliku ani wielu plików, bardziej skomplikowane wyszukiwanie lepiej zrobić skryptem vbs czy podobnym. z kopiowaniem to by było jakoś tak: @for /F "tokens=*" %%G in ('dir /a-d /b /s /w d:\katalog\') DO (call :do_set "%%G") @goto :eof :do_set @find /c "text1" %1 && ( copy /y %1 d:\n1\%~n1_t1.txt ) @find /c "text2" %1 && ( copy /y %1 d:\n2\%~n1_t2.txt ) @find /c "text3" %1 && ( copy /y %1 d:\n3\%~n1_t3.txt ) @goto :eof pliki są przenoszone do odpowiedniego katalogu, przy czym plik może się znaleźć w kilku katalogach jeżeli zawiera kilka pasujących ciągów (chyba takie jest założenie?), nazwa nowego pliku jest troszkę bardziej złożona niż w zapytaniu aby uniknąć nadpisania jeżeli więcej niż jeden plik pasuje do wzorca. pzdr Odnośnik do komentarza
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się