znajdź ciąg z wielu plików i zamień go bez tworzenia nowego pliku


3

Chcę znaleźć ciąg np. „Data” z moich plików folderu zawierającego wiele plików „.c” i „.h” i zastąpić go „datą 24-kwietnia-2018” przy użyciu pliku wsadowego. co powinienem zrobić? Zobacz poniższy kod. Chcę zrobić to samo, ale nie dla jednego pliku Input.txt, chcę zrobić dla wielu plików z rozszerzeniami folderu

@echo off 
setlocal enableextensions disabledelayedexpansion

set "search=@date"
set "replace=@date 24-apr-2018"

set "textFile=Input.txt"

for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    >>"%textFile%" echo(!line:%search%=%replace%!
    endlocal
)

1
Jeśli zdefiniujesz textFileprzez set "textFile=%1", możesz wywołać ten plik wsadowy (np. O nazwie SetDate.cmd), aby zaktualizować plik w przekazanym parametrze. Następnie możesz użyć for %i in (DirPath\FileMask) do call SetDate.cmd %i, podwajając, %jeśli jest w samym pliku wsadowym.
AFH,

Nie dostałem ciebie. Czy możesz podać mi rozwiązanie pliku wsadowego?
Meera,

Niedawno zacząłem używać GrepWin do wyszukiwania i zastępowania wielu plików tekstowych i lokalizacji. Byłem pod wrażeniem tego.
Andi Mohr,

@ Meera - nie wiem, co jeszcze mogę powiedzieć, aby wyjaśnić, bez wchodzenia w szczegóły, które wymagałyby odpowiedzi. Jeśli plik wsadowy jest SetDate.cmd, edytuj go tak, aby stało się trzecie setpolecenie set "textFile=%1", a następnie wywołaj go za for %f in (DirPath\FileMask) do call SetDate.cmd %fpomocą wiersza polecenia lub for %%f in (DirPath\FileMask) do call SetDate.cmd %%fw innym pliku wsadowym. Mam nadzieję, że jest jasne co DirPathi co FileMaskoznacza.
AFH,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.