Plik wsadowy jak zmienić tekst w zależności od innego


(S Jachymczyk) #1

Witam

Mam pytanie czy za pomoca bat mogę zmienić część danych w zależności od innych występujących w tym pliku

 

Dla przykładu mam w pliku tekst

123456;;;;101;163662-F ; ;FRAME; 
ColorInside;WH; 
ColorOutside;WH; 
NoCorner;4; 
End; 
123456;;;;102;163710-F;1             ;FRAME; 
ColorInside;WH; 
ColorOutside;WH; 
NoCorner;4; 
End; 
123456;;;;103;163710-F;Homkia-BERTHELEMY             ;FRAME; 
ColorInside;WH; 
ColorOutside;WH; 
NoCorner;4; 
End; 

 

W zależności od tego czy w danych ColorInside lub ColorOutside 

ColorInside;WH; 
ColorOutside;WH;

bedzie WH,WM,WD

 

to w 123456 poprzedzającym tekst bedzie wtedy 123456_A _B itd

 

Pozdrawiam Sławek


(Pablo_Wawa) #2

Musisz pobrać cały plik linia po linii do pamięci (do zmiennej pseudo-tablicowej), wyłuskać/sprawdzić odpowiednie warunki (w trakcie lub po wczytaniu całości danych) i dokonać zmiany wartości pewnych elementów w pseudo-tablicy tablicy, a następnie zapisać tę tablicę do pliku.

 

Innym rozwiązaniem jest wyszukanie określinych warunków w pliku z danymi, a nastąpnie jego modyfikacja (ale to wydaje mi się znacznie trudniejsze w ogólnym przypadku).

 

Jak nie wiesz, jak coś zrobić, poszukaj informacji w świetnym serwisie http://ss64.com/nt/


(bachus) #3

Jaki OS dokładnie?


(S Jachymczyk) #4

Win 7 Ultimate 64


(bachus) #5

W PowerShell łatwiej się da to oprogramować.


(S Jachymczyk) #6

Jakaś pomoc ? Jakiś przykład ?

 

Dzieki


(Pablo_Wawa) #7

Przykładowy skrypt przetwarzający tekstowy plik konfiguracyjny (XML), wyłuskujący z niego klika istotnych danych  i generujący nowy plik XML:

upgrade_profile_21.5_to_22.62.cmd

 

Dodatkowo ciekawy wprowadzajacy artykuł na DP: Konsola CMD i pliki wsadowe: ECHO, SET

A jak korzystać z pseudo-tablic opisuje tekst Arrays in Batch