string replace mit batch

shybby

Mitglied
hallo

ich habe folgendes problem:

ich errechne mittels javascriip formular verschidene werte, und schreibe diese mittels batch in ein textfile. nur da die parameterübergabe an batch mit leerzeichen mit \" auskommentiert werden muss, habe ich dann folglich auch im txt file fiese anführungszeichen.. kann man diese irgendwie mittels batch herausfiltern?

PHP:
do.bat 

@echo off


echo %1>>myfile.ptd
myfile.ptd
PHP:
function schreiben(){

    wshShell = new ActiveXObject("WScript.Shell");
parameter=document.getElementById("familientabelle").innerHTML;
parameter= "\""+parameter+"\"";
    var aufruf = "do.bat ;"  + parameter;
    wshShell.Run(aufruf);

}

das ganze soll lokal verfügbar sein und funktioniert bis auf die gänsefüschen ganz gut soweit...

vielen dank im voraus für eure rückmeldungen.
 
Hi,

Vorschlag 1: Wäre es nicht einfacher das ganze vom WSH aus in ein File zu schreiben?
Code:
function schreiben(){
    var ts;
    var fso;

    wshShell = new ActiveXObject("WScript.Shell");
    fso = new ActiveXObject("Scripting.FileSystemObject");
    ts = fso.CreateTextFile('myfile.ptd",-1);
    ts.write(document.getElementById("familientabelle").innerHTML);
    ts.close();
}
müsste ungefähr so gehen, aber ohne Gewähr - hab das schon lange nicht mehr gemacht.

Vorschlag 2: Versuche mal
Code:
@echo off

set x=%1%
set y=%x:~1,-1%

echo %y >>myfile.ptd
myfile.ptd
das sollte das erste und das letzte zeichen abschneiden

Vorschlag 3: Wenn du aufwändigere Textersetzungen auf der Kommandozeilen machen musst, dann schau dir mal SED an.
Code:
sed 's/"//g' myfile.ptd myfile.ptd
Das würde dir alle " im File rausnehmen und durch einen leeren string ersetzen.


bye
 
vielen dank für die antwort.... t bei mir leider nicht...

mir ist aber soeben der %* in batch über den weg gelaufen...damit kann ich alle übergebenen parameter ausgeben & somit muss ich im javascript die zeichenkette nicht auskommentieren.. klppt wunderbar.....
Code:
@echo off


echo %*>>myfile.ptd

erledigt ;)
 
Ich habe ein Problem dass in diese Richtung geht.

Kurzversion:
Gibt es ein Zeichen um > als normales Textzeichen zu definieren?
Zum Beispiel /> oder sowas?

Lange Version:
Ich möchte mit einer Batch aufgrund des inhaltes einer Datei
ein File mit xml Notation erstellen.
Batch Dateien sind für sowas Kacke, und ich denke ich machs in C, aber
jfmi... der Code sieht gekürzt ungefähr so aus.

FOR /F "skip=1" %%a IN (%~f1) DO (
echo " <object name="%%a">" >> channels.txt
echo " </object>" >> channels.txt
)

Sowas geht auch, allerdings hab ich nun die " " ebenfalls im XML.
Ohne die kennzeichnenden " am Anfang und Ende des Strings, bekommt dos
ein Problem mit dem '>'
Gibt es ein Zeichen um > als normales textzeichen zu definieren?
zum beispiel /> oder sowas?

Vielen Dank für die Antwort
greetZ AreS
 
Hi,

in Batch kannst du das mit dem Zirkumflex "^" escapen
Beispiel:
Code:
echo ^<object^>1231^</object^> >1.txt
bzw
echo ^<object^>1231^</object^>>1.txt

bye
 
vielen dank für die antwort.... t bei mir leider nicht...

mir ist aber soeben der %* in batch über den weg gelaufen...damit kann ich alle übergebenen parameter ausgeben & somit muss ich im javascript die zeichenkette nicht auskommentieren.. klppt wunderbar.....
Code:
@echo off


echo %*>>myfile.ptd

erledigt ;)

Wie ist das denn mit den Parametern?
Sind alle Parameter zusammen ein String, oder ist jeder Parameter ein String?
Haben die Parameter alle verschiedene Werte, z.B. %1, %2, %3 usw.?
Gibt es mehr als die zehn Parameter (%1,2,3,4,5,6,7,8,9,0)?
Wie sieht das aus, wenn man mit %* alle Parameter ausgibt? Erhält man dann einen String oder sind alle Parameter getrennt hintereinander aufgeschrieben?
 
Zurück