Hallo,

Is iemand hier toevallig handig met het maken van een .bat file?

Wat ik wil is in grote lijnen het volgende:

Ik heb een map met daarin 2 andere mappen en 2 bestanden:


\bar
\foo
bar.xml
foo.xml

Wat ik nu wil is het volgende:

1. als ik het .bat bestand open, moet mij gevraagd worden om een string X in te voeren
2. in het bestand foo.xml moet gezocht worden naar een unieke (vaststaande) string, bijv. ABCXYZ
3. string ABCXYZ moet in het bestand vervangen worden door string X
4. het bestand foo.xml moet worden opgeslagen
5. de 2 mappen en bestanden moeten als 1 bestand gezipt worden, bijvoorbeeld new.zip

Is er iemand die dit uit z'n mouw schudt?
Maak je dit toch in PHP en dan roep je dat aan uit je batch file.


php myscript.php


of gaat dat niet werken?
ik weet niet of onder DOS ook "sed" beschikbaar is?

Onder Linux is dat een krachtige tool om zoiets op te lossen
>> of gaat dat niet werken?

Nee, het moet gewoon een lokaal bestandje op m'n pc zijn. Heeft niks met een website te maken.

>> ik weet niet of onder DOS ook "sed" beschikbaar is?

Geen idee, ik ken dat commando niet?

de combi "dos sed" in Google gaf genoeg aanwijzingen, dat het inderdaad bestaat.

of een powershell die dat ook op kan lossen.


"Nee, het moet gewoon een lokaal bestandje op m'n pc zijn. Heeft niks met een website te maken."

Maar PHP heeft ook niets met een website te maken :-p

Toevallig wordt php veel voor websites gebruikt, maar je kunt het ook gebruiken voor scriptjes die je vanaf de command line of vanuit een cronjob aanroept.


php mijnscript.php jo

en dan als simpel voorbeeld in mijnscript.php
<?php

echo 'Hello World ';
echo $argv[1];
?>

Ik snap niet helemaal wat je bedoelt. Ik wil gewoon een simpele .bat file maken :-)
Gewoon in DOS is dat dan denk ik. Niet in PHP :-)
pure dos gaat dat niet kunnen.

je hebt er een commando bij nodig dat meer is dan dat in DOS beschikbaar is. Simpele handelingen als "kopieer file", "verplaats file" en "maak dir" kan dos wel.

Maar je zult dus iets extra's nodig hebben.

sed zou dat kunnen zijn. Ik neem aan dat je dan een sed.exe ergens vandaan moet halen in op je pc zetten.

Alternatief is om het in php, perl of andere script taal te schrijven.


Zippen kan dos van nature ook niet, dus ook daar zul je een tooltje voor moeten downloaden.


<?php

$content = file_get_contents('foo.xml');
$content = str_replace('ABCDEF', $argv[1], $content);

file_put_contents('foo.xml', $content);
?>

en in je bat file komt dan


php script.php vervangendeTekst
zip foo.xml foo.zip


Ozzie PHP op 01/03/2016 17:31:05

>> of gaat dat niet werken?

Nee, het moet gewoon een lokaal bestandje op m'n pc zijn. Heeft niks met een website te maken


Huh PHP hoeft niet per definitie voor een website gebruikt te worden..

Zolang je maar PHP op je pc hebt staan werkt het gewoon.

Je kunt zelfs de user om input vragen.

http://www.sitepoint.com/php-command-line-1/
Thanks Ivo ...

Dus het vervangen van de tekst gaat al niet lukken en zou dus al met PHP moeten? Begrijp ik je goed?

Ik heb trouwens wel WinRar op m'n computer staan. Kan ik daar dan mee zippen?

[size=xsmall]Toevoeging op 01/03/2016 18:08:44:[/size]

@Frank

Ik heb niet zoveel trek om voor zoiets (relatief simpels) PHP te gaan installeren op m'n pc, dus vandaar dat ik een iets makkelijkere oplossing zoek ...

[size=xsmall]Toevoeging op 01/03/2016 18:10:57:[/size]

PS ... zou het mogelijk zijn om die string X in een apart bestandje te zetten en te importeren in foo.xml? Dus dat in foo.xml ergens staat IMPORT string uit bestandje foobar?
Ik snap het Frank, maar liever dus niet een complete installatie als het wellicht makkelijker kan. Als het echt niet anders kan is het een optie, maar het lijkt me nogal omslachtig.

Reageren