Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Datei in neue Datei schreiben lassen.

Frage Entwicklung Batch & Shell

Mitglied: bennibatcher

bennibatcher (Level 1) - Jetzt verbinden

06.04.2010 um 02:31 Uhr, 4080 Aufrufe, 10 Kommentare

Eine .bat Datei soll in eine andere .bat Datei hineinschreiben.

Hallo! Ich habe ein Problem mit .bat dateien.
echo copy %0 /y "%userprofile%\startm~1\Programme\Autostart > datei.bat
Damit Lasse ich eine neue .bat Datei anlegen und will in sie reinschreiben.
Geht aber nicht es gibt mir im Konsolenfenster : copy %0 /y "%userprofile%\startm~1\Programme\Autostart > datei.bat aus.
Aber mit jedem anderen Befehl gehts??
Z.b wenn ich schreibe:
echo pause > datei.bat
echo cls >> datei.bat
Dann gehts ganz einwandfrei.
Warum oben nicht?
Danke schonmal!
LG Benni.
Mitglied: Nottrott
06.04.2010 um 03:08 Uhr
Wenn du das Anführungszeichen im copy-Befehl brauchst, musst du es mit einem ^ davor maskieren.
Außerdem willst du vermutlich am Ende auch noch ein Anführungszeichen.
Also:
echo copy %0 /y ^"%userprofile%\startm~1\Programme\Autostart^" > datei.bat
Bitte warten ..
Mitglied: MisterExpulso
06.04.2010 um 03:10 Uhr
Nun das ist ganz logisch:
entweder man setzt etwas in Anführungszeichen oder nicht - du setzt hier vor %userprofile%[...] Anführungszeichen, aber hinter Autostart nicht mehr. Lass es vorne weg oder mach es hinten dran, dann funktioniert es auch.

//edit: Mist zu langsam ;)
Bitte warten ..
Mitglied: bastla
06.04.2010 um 13:12 Uhr
@DGzRSBorkum
Lass es vorne weg oder mach es hinten dran, dann funktioniert es auch.
Zumindest unter der Annahme, dass ein XP oder darunter als BS zum Ausführen des Ergebnisses verwendet werden soll, würde ich den Vorschlag auf "mach es hinten dran" reduzieren ...

Ansonsten sollte vielleicht
echo copy "%%0" "%%userprofile%%\startm~1\Programme\Autostart">datei.bat
eher den gewünschten Erfolg bringen ...

Grüße
bastla
Bitte warten ..
Mitglied: Nottrott
06.04.2010 um 13:43 Uhr
@bastla:
kommt darauf an, ob er in der neuen Datei schon die festen Pfade drinstehen haben will oder ob diese erst beim Ausführen eingefügt werden.
Außerdem bringt %0 seine Anführungszeichen selber mit.
Also entweder
echo copy %0 /y "%userprofile%\startm~1\Programme\Autostart" > datei.bat
oder
echo copy %%0 /y "%%userprofile%%\startm~1\Programme\Autostart" > datei.bat
Gruß
nottrott
Bitte warten ..
Mitglied: bastla
06.04.2010 um 13:55 Uhr
@Nottrott
Hinsichtlich "%0" hast Du recht (ich könnte aber noch "%%~0" anbieten ), wobei es, abgesehen von den Anrührungszeichen, und egal ob mit einem oder zwei Prozentzeichen, eher fragwürdig erscheint ...

Ansonsten: Welchen Sinn sollte es haben, einen festen Pfad in ein anderes Profil vorzugeben? Wenn's ohnehin das eigene sein sollte, wäre immer noch die variable Schreibweise zu bevorzugen (etwa wegen "C:\Dokumente und Einstellungen" vs "C:\Users") ...

Grüße
bastla

P.S.: Das "/y" hat zwar einen interessanten Platz (funktioniert allerdings auch dort), ist aber in einem Batch trotzdem unnötig ...
Bitte warten ..
Mitglied: Biber
06.04.2010 um 14:21 Uhr
[OT] @bastla
Zitat von bastla:
...., wobei es, abgesehen von den Anrührungszeichen, ....eher fragwürdig erscheint ...
Ich bin auch immer ganz gerührt, wenn ich die armen unschuldigen Pfade so eingeschlossen sehe...*snief*
Manchmal schüttelt es mich sogar...

Dieser erste Arbeits-Dienstag fühlt sich irgendwie an wie ein Montag im Doppelpack..

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: bastla
06.04.2010 um 14:38 Uhr
[OT too]
@Biber
... wobei es noch schlimmer ist, als es auf den ersten Blick scheint - eingeschlossen ist nämlich der/die/das Batch him-/her-/itself. Dass ich zu Derartigem fähig wäre, hätte ich mir eigentlich selbst nicht zugetraut - obwohl, das mit dem Doppelpack-Montag (auch bei mir: kein Vergleich zu gestern ) wäre vielleicht eine Erklärung ...

Aber noch etwas Tröstliches zu besagtem "Montag": So lange, wie er schon gedauert hat, dauert er nimmer (hoffe ich jedenfalls).

[/OT too]
Bitte warten ..
Mitglied: MilhouseNo1
07.04.2010 um 14:56 Uhr
Hallo zusammen,

weils grade zu diesem Thread passt:

ich möchte mit echo diese Zeile (ohne Anführungszeichen) in eine Batch schreiben: VER > %NTLOG%
Das GrösserAls-Zeichen wird aber als Umleitungsbefehl interpretiert (auch Anführungszeichen ändern daran nichts)

echo VER > %%NTLOG%%>>batch.cmd --> VER (und der Rest wird ignoriert...)
echo VER ">" %%NTLOG%%>>batch.cmd --> VER ">" %NTLOG%

Hat jemand diese Nuss bereits geknackt?
Bitte warten ..
Mitglied: MilhouseNo1
07.04.2010 um 15:00 Uhr
wer lesen kann....

echo VER ^>^ %%NTLOG%%>>batch.cmd --> VER > %NTLOG%
Bitte warten ..
Mitglied: Biber
07.04.2010 um 15:01 Uhr
Moin MilhouseNo1,

willkommen im Forum.

Steuer- und Umleitungszeichen musst du im Batch/am CMD "maskieren" mit einem Caret ("^"), wenn sie als Parameter übergeben werden.

Also
echo VER ^>%%NTLOG%%>>batch.cmd 
Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...