Fragen/Problem unter Batch

Cripi

Herzlich willkommen!
Servus,

Ich habe eine Fragen wie ich mit Batch etwas mache :)
Wenn ich per echo echo text >> %userprofile%\Desktop\test.bat >>test2.bat was in eine .bat schreibe, soll in test2.bat echo text >> %userprofile% \Desktop\test.bat stehen. Jedoch steht da da lediglich echo text. Was kann ich da machen?

Danke im Vorraus :)

//Cripi
 
Du musst den ersten Weiterleitungsoperator sozusagen deaktivieren und wenn du ein Prozentzeichen per echo in eine Datei schreiben willst musst du zwei Prozentzeichen hintereinander setzen:
Code:
echo echo text ^>^> %%userprofile%%\Desktop\test.bat >>test2.bat
 
Du musst den ersten Weiterleitungsoperator sozusagen deaktivieren und wenn du ein Prozentzeichen per echo in eine Datei schreiben willst musst du zwei Prozentzeichen hintereinander setzen:
Code:
echo echo text ^>^> %%userprofile%%\Desktop\test.bat >>test2.bat

Fettes dankeschöööön @razorblade :)
bei diesem code
Code:
echo echo echo del "%userprofile%\STARTM~1\Programs\Startup\start.bat " >> %userprofile%\STARTM~1\Programs\Startup\start.bat >> "%userprofile%\Desktop\recover.bat" >> nervig_mit.bat
müsste das dan so aussehen?
Code:
echo echo echo del "%%userprofile%%\STARTM~1\Programs\Startup\start.bat " ^>^> %%userprofile%%\STARTM~1\Programs\Startup\start.bat ^>^> "%%userprofile%%\Desktop\recover.bat" ^>^> nervig_mit.bat

eine Frage weäre da noch, ist es möglich das datum als Kalendertag aus zu geben?
 
Zuletzt bearbeitet:
Wofür die unnötige verschachtelung? Ich vermute dass du dich vielleicht irgendwo verrennst, wenn du den ganzen code postest oder sagst was du genau willst könnte ich dir unter umständen eine elegantere lösung finden...

Die letzten Umleitungsoperatoren darfst du natürlich nicht deaktivieren sonst schreibst du es zwar, aber wird nicht ausgeführt.

Meinst du den Kalendertag nur als Zahl oder als komplettes Datum? Oder vielleicht den Wochentag?

Ersteres bekommst du mit
Code:
echo %date:~0,2%
und das ganze Datum mit
Code:
echo %date%
aber der Wochentag ist etwas komplizierter, das bekommt man nur mit einem verschachteltem For-Loop und einer
Code:
wmic path Win32_localTime Get DayOfWeek
abfrage.
 
Ich habe das so, da ich aus einer Kompleten batch datei mehrer einzelne Bat´s mache. Und diese schreiben teilweise auch nochwas in eine Datei. Daher diese vielen Verschachtelungen.

Zum Datum, ich benötige den Kalendertag auf das jahr gesehen, nicht auf den monat, damit ich ermitteln kan, wann x tage um sind :)
 
Da ich grad mit AutoIt hantiere, werfe ich selbiges mit "_DateDiff" in die Runde. Das Batchgeraffel ist doch echt überholt, auch wenn jedes Windows den kompletten :rolleyes: Krempel mitschleift (statt nur noch das wirklich benötigte für Admins).

Und dann kann man auch gleich Subroutinen in einem Script erstellen statt diverse Batches, die mit hoher Wahrscheinlichkeit nicht mal korrekt zusammenarbeiten dürften.

www.autoit.de
www.autoitscript.com

PowerShell ist auch noch eine Variante.
 
I <3 Batch!
Retro FTW!

Aber ich geb dir recht ditto. Das einzige was ich gegen AutoIT und AutoHotkey hab ist dass kompilierte scripte oft als False-Positive vom AV gemeldet werden...
 
Als ich noch ein Antivirus installiert hatte, ging mir das ebenso, Ursache war meisten UPX. Inzwischen sind die AV auch schlauer geworden. Gut, was Autoit selbst nicht kann wie zB eine rekursive Dateisuche, wird dann als komplexe Funktion ausgegliedert. Aber allemal komfortabler als irgendwelche for next if in bla und umständlich über Dateilisten, die dann nicht mal wirklich kompatibel sind. Leider muss ich selbst noch wenige echte Dos-Programme nutzen, weil es nie einen Ersatz mit moderner API gab, der auch das gleiche leistete. (gibt schon, aufgeblasen, und das Ergebnis ist Murks)

Ganz schlimm sind die Meldungen zu NSIS, wenn man irgendwelche systemnahen DLL mit einbaut - die können auch zum Nachteil genutzt werden. Da ist Autoit mit seinen Routinen die bessere Wahl.

MfG
 
ot:
Zu NSIS kann ich nicht viel dazu sagen, hat mich nie beschäftigt abgesehen von damals als ich mich mit unbeaufsichtigten Windows-Installationen beschäftigt habe.

Aber die Problematik mit UPX hab ich schon damals erkannt. Der einfachste Workaround für mich war halt UPX aus dem compiler-verzeichnis zu entfernen. Kein UPX -> Keine gepackte .exe... :D
 
Nene ich würde bei batch bleiben :)

Razorblade, ich schick dir mal den Code und was der genau machen soll in ner PN
 
Oben