Skocz do zawartości
ewenement

Komenda w cmd na wyszukiwanie tekstu w zawartości pliku .txt

Rekomendowane odpowiedzi

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

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

Udostępnij tę odpowiedź


Odnośnik do 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ę

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...