Poslao: 11 Okt 2010 17:28
|
offline
- Pridružio: 30 Jun 2009
- Poruke: 403
|
Tražim skriptu ako tko ima koja može odraditi slijedeće:
Imam folder C:\mapa
U tom folderu nalazi se još 5-6 subfoldera
C:\mapa\subfolder1\
C:\mapa\subfolder2\subsubfolder2a\
C:\mapa\subfolder3\subsubfolder3a\subsubfolder3ab\
........
U glavnom folderu nalazi se desetak *.html files a u svakom subfolderu također cca desetak *.html
Htio bih skriptom u svakom fajlu *.html (da ne otvaram svaki fajl posebno) obrisati cijeli source code i zamjeniti ga određenim istim tj. novim source code (koji sadrži par linija koda).
Dakle u svim fajlovima
1. Brisanje cijelog source koda
2. Umetanje novog sorce koda
Ima li netko skriptu (ili nešto slično i iskoristivo) koja to može odraditi.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 11 Okt 2010 22:06
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Sačuvaj fajl kao izmeni.bat:
cd C:\mapa
for /f "tokens=*" %%d in ('dir /b/a/s *.html') do echo. > %%d
Ovo će rekurzivno obrisati sve .html fajlove, tj. sadržaće samo jednu praznu liniju i ništa više.
Za ubacivanje koda u fajlove probaj da se snadjes, nisi nam baš dao puno informacija.
Pozdrav
|
|
|
|
Poslao: 12 Okt 2010 11:44
|
offline
- Pridružio: 30 Jun 2009
- Poruke: 403
|
Hvala ti
Uspio sam nekako obrisati sav source kod ali su mi ostale linije umjesto koda tako da mi je ovo tvoje rješenje prihvatljivije jer ostavlja samo jednu liniju pa su tako sve datoteke veličine 3 kb.
U stvari ovo što si ti dao je BRISANJE koda a ja sam mislio da odjednom uradi slijedeće:
1. Obrisati sve
2. Umetnuti novi kod
Dakle umjesto bilo kakvog koda na svim *.html stranicama umetnuti npr:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Page</title>
</head>
<body>
<table border="0" width="100%">
<tr>
<td>tablica</td>
</tr>
</table>
</body>
</html>
Hvala ti za ponuđeno rješenje
|
|
|
|
Poslao: 12 Okt 2010 15:03
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
IvanC ::Hvala ti
Uspio sam nekako obrisati sav source kod ali su mi ostale linije umjesto koda tako da mi je ovo tvoje rješenje prihvatljivije jer ostavlja samo jednu liniju pa su tako sve datoteke veličine 3 kb.
Ma može i prazan fajl, to sam više onako sklepao u očekivanju više informacija za dalji rad.
IvanC ::U stvari ovo što si ti dao je BRISANJE koda a ja sam mislio da odjednom uradi slijedeće:
1. Obrisati sve
2. Umetnuti novi kod
Dakle umjesto bilo kakvog koda na svim *.html stranicama umetnuti npr:
...
Pa napisah gore da nisi dao šta treba da se umetne pa sam samo dao "polovično" rešenje.
Možda bi moglo da se gleda i sa ove strane; 'ladno mogu da se obrišu ti fajlovi, i da se na njihovo mesto stavi fajl koji bi sadržao te linije koda što si naveo? Ako je to prihvatljivo, onda možda ovo posluži:
cd C:\Documents and Settings\dgudzic\Desktop\tmp\test
for /f "tokens=*" %%d in ('dir /b/a/s *.html') do (
type "C:\Documents and Settings\dgudzic\Desktop\tmp\over.txt" > %%d
)
Kod koji želis da kopiraš stavi recimo u over.txt fajl. Naravno izmeni putanje, ovo gore je samo test kod mene.
Pazi, ovo će izmeniti SVE html fajlove. Prvo napravi test folder sa par pod-foldera, testiraj skriptu, pa tek ako sve radi primeni je na stvarnim fajlovima.
Pozdrav
|
|
|
|
Poslao: 13 Okt 2010 09:14
|
offline
- Pridružio: 30 Jun 2009
- Poruke: 403
|
Napisano: 12 Okt 2010 21:50
Pa što da ti kažem ? Svaka čast !
Sve funkcionira besprijekorno, Hvala ti
Dopuna: 13 Okt 2010 9:14
@soxxx
Sada mi se pojavila potreba za slijedeće
- Pronađi ovaj kod/text
<table border="0" width="100%">
<tr>
<td>tablica</td>
</tr>
</table>
- Zamjeni ga ovim kodom/textom
<table border="0" width="100%">
<tr>
<td width="141">1</td>
<td rowspan="2">2</td>
</tr>
<tr>
<td width="141">3</td>
</tr>
</table>
Bilo bi super kada bi također mogao koristiti tekstualne fajlove ( find.txt i over.txt )
|
|
|
|
Poslao: 13 Okt 2010 10:13
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Pre nego ponudim rešenje, reci mi da li je kod koji treba naći jedini u fajlu, ili fajl sadrži i neki drugi kod? Da li je traženi tekst uvek isti broj linija ili se menj? Od toga će zavisiti i na koji način će se ubaciti kod za zamenu.
|
|
|
|
Poslao: 13 Okt 2010 13:38
|
offline
- Pridružio: 30 Jun 2009
- Poruke: 403
|
soxxx ::Pre nego ponudim rešenje, reci mi da li je kod koji treba naći jedini u fajlu, ili fajl sadrži i neki drugi kod? Da li je traženi tekst uvek isti broj linija ili se menj? Od toga će zavisiti i na koji način će se ubaciti kod za zamenu.Mislio sam da to nije važno ako koristim fajlove poput find.txt i over.txt
1. fajl sadrži i neki drugi kod
2. traženi tekst tj. broj linija nije uvijek isti i mjenja se od situacije do situacije.
dakle i ono što tražim (find) i ono što stavljam (replace) je promjenjivo
U prvom slučaju imam Find-A => Replace -B
U drugom slučaju ću imati Find-A => Replace-C
U trećem slučaju ću imati Find-AB => Replace-D....
Ovo mi treba jer nisu svi slučajevi iste namjene.
Nadam se da nisam sad zakomplicirao stvar.
Idealno bi bilo sa ovim TXT fajlovima koje sam spomenuo
Find tekst u fajlu "find.txt" i replace sa tekstom u fajlu "over.txt"
|
|
|
|
Poslao: 13 Okt 2010 16:43
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Za ovo što ti hoćeš je potreban alat za obradu teksta. Ovaj primer gore je rešiv, ali, ako se kod stalno menja postaje teže. Onda ti treba neki alat koji će "parsirati" html kod na pravi način. Opet, na nekim drugim platformama je to lakše izvesti (*BSD, Linux) jer dolaze sa potrebnim alatima. Kod Windows-a je to teže, barem meni. Elem, pošto je potreban neki alat koji obradjuje tekst, a Windows to nema, predlazem mawk, ima samo 123KB.
Recimo nesto ovako:
setlocal EnableDelayedExpansion
cd C:\Documents and Settings\dgudzic\Desktop\tmp
for /f "tokens=*" %%d in ('dir /b/a/s *.html') do (
set ime=%%~nd%
set fajl="%%d"
mawk.exe "/<td>tablica<\/td>/{while((getline l<\"replace.txt\")>0) print l; next}1" !fajl! 1>%TEMP%\!ime!
move /y %TEMP%\!ime! !fajl!
)
Mawk alat (mawk,.exe) i replace.txt (kod koji si gore naveo) stavi u isti folder. Sve ispod toga su podfolderi sa html fajlovima.
|
|
|
|
Poslao: 13 Okt 2010 19:21
|
offline
- Pridružio: 30 Jun 2009
- Poruke: 403
|
soxxx ::Ovaj primer gore je rešiv, ali, ako se kod stalno menja postaje teže.To sam i mislio ali koliko vidim dao si sebi truda, i hvala ti.
soxxx ::
Recimo nesto ovako:
............"mawk.exe "/<td>tablica<\/td>/..........
Koliko vidim ovaj dio koda (<td>tablica<\/td>) je ono što tražim. To sve funkcionira ako je jednostavan tekst (vidi sliku) ali ako je neki kod koji tražim sa više linija, kao što je u prethodnom postu tada ima problema (ili ja nešto ne odradim kako treba)
Uglavnom probao sam i sve funkcionira sa jednostavnim TRAŽENIM tekstom (ne i sa hrpom koda koji mi je ponekada potreban). To mi je dovoljno da bih si napravio startnu poziciju i na drugi način rješavao ostali dio koda. Iskreno rečeno nadao sam se rješenju pomoću fajlova find.txt i replace.txt ;-)
BTW: Mawk sam instalirao klasično u ProgramFiles folder (GnuWin32) i mawk.exe kopirao u folder C:\mapa
Hvala ti još jednom za trud i pomoć
Pozz
|
|
|
|
Poslao: 13 Okt 2010 21:03
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
IvanC ::Koliko vidim ovaj dio koda (<td>tablica<\/td>) je ono što tražim. To sve funkcionira ako je jednostavan tekst (vidi sliku) ali ako je neki kod koji tražim sa više linija, kao što je u prethodnom postu tada ima problema (ili ja nešto ne odradim kako treba)
Da. Problem je zato što nije poznato unapred koliko linija treba naći, jer "šema" može da se ponavlja u kodu i moraš da tačno odrediš šta treba da obrišeš, a i traženi kod može da ide i do 5-6 posebnih linija. Ali opet, ako nam daš još neki primer možda nešto uspemo da napravimo.
IvanC ::Uglavnom probao sam i sve funkcionira sa jednostavnim TRAŽENIM tekstom (ne i sa hrpom koda koji mi je ponekada potreban). To mi je dovoljno da bih si napravio startnu poziciju i na drugi način rješavao ostali dio koda. Iskreno rečeno nadao sam se rješenju pomoću fajlova find.txt i replace.txt ;-)
Jbg, znam. Ni ja ne volim kada nešto ne može da se jednostavno reši. Možda neko drugi uskoči sa više znanja ili saveta.
Citat:BTW: Mawk sam instalirao klasično u ProgramFiles folder (GnuWin32) i mawk.exe kopirao u folder C:\mapa
Ako je imao installer, onda možda i nisi morao, ako je ta putanja u PATH-u.
IvanC ::Hvala ti još jednom za trud i pomoć
Pozz
Nema na čemu. Kao što rekoh, daj jos neki komplikovaniji primer pa da vidimo šta može da se uradi.
Pozdrav
|
|
|
|