Mit Windows-Batch-Skript \"%1\" in Datei schreiben
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
bär
code
datei
dia
entfernen
ersten parameter
familie
file
idee
klammern
nummer
parameter
prozent
richtigen position
schiffer
set
shell
text
zeichen
zeile
-
Hallo, ich programmiere gerade für die Schule ein kleines Batch-Skript, das unseren Virus killt. Dieses Bat-Skript funkioniert eigentlich auch so weit, nur habe ich noch eine frage. Ich will in eine Datei volgenden Text hinzufügen:
explorer /e,/%1
nur wird leider das %1 natürlich nicht in die datei hineingeschreiben. Mein Code:echo shell\\1\\command=explorer /e,/%1 >> autorun.inf
Vieleicht wiss ihr eine Lösung, dass ich diesen Text in eine inf-Datei hineinschreibe.
lg
Vali
PS: ich hoffe, ich bin im richtigen Board -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ich kenne mich da nichts soo gut aus :P
und ich habe gesehen, dass du dieses /% benützt hast...
aber hast du es schon einmal mit anführungszeichen probiert?
lg
Sincer
PS: wie gesagt... kenn mich mit bat kaum aus :/ -
also wenn ichs mit anfürhungszeichen schreibe, dann schreibt windoof mir auch anführungszeichen in die datei^^
lg
Vali -
rofl...
verstehe ich das richtig: ohne anführungszeichen schreibt er es gar nicht in die datei, und mit anführungszeichen, schreibt er es rein, aber eben dann auch mit \"?
gibt es eine möglichkeit mit batch per array oder so buchstabenweise genau die zwei \" zu löschen?, also reinschreiben, und in der nun reingeschriebenen datei in die zeile gehen, in der das eben reingeschribene steht, und dann das zeichen nummer x und y sprich halt die position, wo die \" sind zu entfernen?
lg
Sincer -
nein, ohne Anführungszeichen schreibt er es schon in die Datei, nur den String %1 nicht, da das in einem bat-skript das zeichen für den ersten parameter ist...
lg
Vail -
jo, ok...
also: du willst in der ini file dann blabla... %1 ...blabla stehen haben...
und nicht das, was dir die bat reinschreibt, nämlich den ersten parameter...
und wenn du jetzt das %1 mit anführungszeichen eingibst (\"%1\")...
steht dann in der ini file bla... \"%1\" ...bla
oder steht dann drinnen bla... \"erster parameter\" ... bla
??
der erste fall wäre idealer :P *g*
und was ist, wenn du dir zusätzlich eine exe dazu machst (c++ oder was weiß ich), die nur die aufgabe hat, vom batch script gestartet zu werden, und den wert %1 in die ini zu schreiben?
das ginge doch, oder?
lg
Sincer -
also die bat-datei ersetzt die zwei zeichen %1 IMMER mit dem Parameter, der natürlich nichts ist.
das ich mir ein prog programmiere, habe ich mir auch gedacht, aber ich will, dass dieses skript auf jedem pc läuft. momentan kann ich nur vb6 (benötigt vb6 runtimes) oder im .net framework (benötigt .net framework^^) programmieren. Also ist die lösung mit c schon mal für mich hinfällig -
ganz einfach du machst ne verknüpfung(blödes wort) der das bat skript mit parameter %1 startet.
mfg
praktisch:
in der schreib.bat steht:
echo shell1command=explorer /e,/%1 >> autorun.inf
verknüpfung:
z.b. ziel\"C:\\schreib.bat\" %1
schon stehts schön in der autorun.inf
Beitrag geändert: 5.3.2008 18:49:09 von familie-schiffer -
ja, wär schön wenns so funktionieren würde^^
ich starte nämlich die bat-datei über dia autorun.inf
Und dazu muss ich erst die bat-datei starten, die die autorun.inf erstellt. das alles läuft automatisch im login-skript mit. aber ich kann als parameter nicht %1 übergeben, da ja %1 immer nichts ist. irgentwie muss es noch eine andere lösung geben.
lg
Vali -
kannst dus nicht so machen...
du schreibst den wert einer variable in die ini file...
also %var = \"%1\"
und nun schreibst du bla... %var ...bla
ginge das vil?
mir gehen langsam die ideen aus *g*
lg
Sincer -
also das mit der variable verstehe ich nicht so ganz, wsa du meinst. aber ich habe eine idee, weiß nur nicht, ob es das bei windoof gibt. könnte man nicht etwas in die ini-datei schreiben, ohne einen zeilenumbruch zu machen? damit könnte man nämlich zuerst ten blabla...1-Text, dann das prozent, und dann den blabla...-text schreiben.
lg
Vali -
in batch dateien gibt es variablen.
naämlich:
SET (variablenname=Zeichenfolge)
das in den klammern ersetzen alos parame=%1
mfg
obwohl du könntest ja zuerst das % in die datei schreiben und dann dahinter 1
edit: du mustt die variablen als %variablenname% machen aber nur wenn du sie abfragst!
Beitrag geändert: 5.3.2008 20:14:35 von familie-schiffer -
also mit diesem code funktioniert es auch nicht:
set (%prozent1 = %1) echo %prozent1 >> test.txt
wie könnte ich denn zuerst das % und dann dahinter die 1 in die datei schreiben (ohne zeilenumbruch)? -
ka, wie das geht...
auf jeden fall mit /% und 1
aber ohne zeilenumbruch...ka :/
vil. gibt es einen befehl etwas genau in das dokument (in dem fall die ini file) und genau in die zeile xy und genau als zeichen nummer ab (also in der richtigen position) einsetzen zu lassen...
ich habe jetzt baer leider auf die schnelle nichts bei google finden können :(
lg
Sincer -
So, jetzt habe ich es geschafft.
Einfach statt \'%1\' \'%%1\' schreiben, dann steht genau das in der datei, was ich wollte.
lg
Vali -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage