Top-Themen

Aktuelle Themen (A bis Z)

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 Einfache Batch-Datei funktinoert nicht mehr wg Syntaxfehler

Mitglied: asd333

asd333 (Level 1) - Jetzt verbinden

07.04.2011, aktualisiert 13:08 Uhr, 4481 Aufrufe, 18 Kommentare

Hallo,

habe diese Batch-Datei, die sowohl unter Vista als auch jetzt in Windows7 bis heute tadellos ihren Dienst verrichtet hat.
Seit heute morgen kein kopieren, stattdessen ein Syntaxfehler. Was mache ich falsch?

Grüße und vielen Dank!
Andreas


@echo off
set datei=c:\Users\Andreas\Desktop\Text\Alles\Struktur.doc
set zielprefix=c:\Users\Andreas\Desktop\Text\Alles\Backups\
set zielext=doc

set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%

set std=%time:~-11,2%
set min=%time:~-8,2%
set sek=%time:~-5,2%

copy %datei% %zielprefix%%jahr%-%monat%-%tag%-%std%-%min%-%sek%-Text.doc
start %datei%


EDIT: ohne mein zutun klappt es nun auch wieder. Könnt ihr nachvollziehen warum dies ganz plötzlich mal funktioniert und mal nicht?
OS ist Win7 Prof, beinahe neues System (Office und Firefox), keine OS-Einstellungsänderungen gemacht etc.
Mitglied: Skyemugen
07.04.2011 um 10:40 Uhr
Aloha,

ganz einfach, vor 10 Uhr bekommst du als std Leerzeichen+Stundenzahl ...

greetz André
Bitte warten ..
Mitglied: asd333
07.04.2011 um 10:45 Uhr
Lieber André,

vielen Dank für Deine Antwort. Das scheint mir logisch, dass das dann nicht zu verarbeiten ist.
Gibt es da einen workaround, damit dennoch ein Dateiname mit Zeitstempel des Kopiervorgangs erstellt werden kann, 24 Std. am Tag?

Beste Grüße,
Andreas
Bitte warten ..
Mitglied: 99045
07.04.2011 um 10:48 Uhr
Zitat von asd333:
Was mache ich falsch?

Hallo und Willkommen im Forum.

Kleiner Tipp zur Fehlersuche:
fang mal mit
01.
@echo on
an und sieh dir den Ablauf deiner Batch in der Konsole an, dann siehst du die Zeile, in der ein Fehler auftritt.

Und bitte zukünftig beim Posten von Programmzeilen die < Code>- Formatierung in der Formatierungshilfe benutzen, das liest sich einfacher.

Gruß
Bitte warten ..
Mitglied: Skyemugen
07.04.2011 um 10:57 Uhr
Aloha,

klar:

01.
set "jahr=%date:~-4%" 
02.
set "monat=%date:~3,2%" 
03.
set "tag=%date:~0,2%" 
04.
 
05.
if %time:~0,2% lss 10 (set "std=0%time:~1,1%") else (set "std=%time:~0,2%") 
06.
set "min=%time:~3,2%" 
07.
set "sek=%time:~6,2%"
greetz André

edit: nicht wundern, ich mochte dein „minus” nicht in den Variablen *gg*

P.S.: Die Zieldatei in Zollzeichen zu setzen wäre generell auch nicht verkehrt (genau so wie sämtliche Pfade im Allgemeinen)
Bitte warten ..
Mitglied: asd333
07.04.2011 um 11:13 Uhr
Vielen Dank euch beiden, das hätte ich alleine niemals hinbekommen.
@99045: Werde mir beides merken, vielen Dank!
Bitte warten ..
Mitglied: Skyemugen
07.04.2011 um 11:15 Uhr
Aloha,

zusätzlich noch eine Anmerkung:

Wenn zum Testen echo on aktiv ist, dann entweder die zu testende batch aus dem cmd aufrufen oder zumindest eine pause setzen, sonst siehst du auch nichts, wenn gleich alles geschlossen wird ^_^ und irgendwann fangen wir auch hier an goto :eof zu setzen *lach*

greetz André
Bitte warten ..
Mitglied: asd333
07.04.2011 um 13:15 Uhr
Hallo,

habe nun alles genauso eingetragen, dennoch erscheint in dieser Zeile ein Syntaxfehler aufgrund von Leerzeichen.

01.
copy %datei% %zielprefix%%jahr%-%monat%-%tag%-%std%-%min%-%sek%-Text.doc
nämlich: Ursprungsordner>copy Urpsrungsdatei Zieltordner\2011 -04 -07 -13-09 -44-Text.doc Syntaxfehler.

Hier nochmal der ganze Code:

01.
@echo off 
02.
set datei=c:\Users\Andreas\Desktop\Text\Alles\Struktur.doc 
03.
set zielprefix=c:\Users\Andreas\Desktop\Text\Alles\Backups\ 
04.
set zielext=doc 
05.
 
06.
set jahr=%date:~-4%  
07.
set monat=%date:~3,2%  
08.
set tag=%date:~0,2%  
09.
 
10.
if %time:~0,2% lss 10 (set std=0%time:~1,1%) else (set std=%time:~0,2%)  
11.
set min=%time:~3,2%  
12.
set sek=%time:~6,2% 
13.
 
14.
copy %datei% %zielprefix%%jahr%-%monat%-%tag%-%std%-%min%-%sek%-Text.doc 
15.
start %datei%
Bitte warten ..
Mitglied: 99045
07.04.2011 um 13:33 Uhr
Hi,

Zitat von asd333:
habe nun alles genauso eingetragen, dennoch erscheint in dieser Zeile ein Syntaxfehler aufgrund von Leerzeichen.
01.
copy %datei% %zielprefix%%jahr%-%monat%-%tag%-%std%-%min%-%sek%-Text.doc

Wenn in einem Pfad ein Leerzeichen enthalten ist, musst du den Pfad in Anführungszeichen setzen.
01.
copy %datei% "%zielprefix%%jahr%-%monat%-%tag%-%std%-%min%-%sek%-Text.doc"
Bist du sicher, dass hinter den Zahlen jeweils ein Leerzeichen steht?
nämlich: Ursprungsordner>copy Urpsrungsdatei Zieltordner\2011 -04 -07 -13-09 -44-Text.doc Syntaxfehler

Gruß
Bitte warten ..
Mitglied: Skyemugen
07.04.2011 um 13:44 Uhr
Aloha,

my mistake, ich habe den Bug der Forensoftware nicht bedacht und glatt die sonst immer gesetzten Zollzeichen bei den set var=wert vergessen hinzuzufügen; habe dies nun nachgeholt.

greetz André

@99045, ja ich denke, er ist sich sicher, denn die Forensoftware schiebt gerne noch ein Leerzeichen hinterher (kannst du auch im Code überprüfen ^_^ bei ihm sind es dann schon zwei Leerzeichen, hehe)

interessant, dass hinter den Sekunden kein Leerzeichen gesetzt wurde (bzw. hinter set sek soundso)
Bitte warten ..
Mitglied: asd333
07.04.2011 um 13:47 Uhr
Hallo,
ja, Leerzeichen stehen zwischen Jahr, Monat, Tag und Minute ein Leerzeichen.
Da das aber ein rein kosmetisches Problem ist, wenn man die Dateinamen in "" setzt, passt das.
Mich wunderte es nur, vor allem, weil es bei Stunden und Sekunden nicht der Fall ist.
Aber gut, ich bin zufrieden, das erleichtert mir sooo viel Arbeit. Vielen Dank.
Andreas
Bitte warten ..
Mitglied: jeb-the-batcher
07.04.2011 um 15:09 Uhr
Hallo,

noch eine Anmerkung, bei unerwarteten Leerzeichen ist vermutlich der Leerspeicher übergelaufen

Um dies zu verhindern empfiehlt es sich Zuweisungen immer in Anführungszeichen zu setzen.

Also
01.
set "monat=%date:~3,2%"
Das vermeidet ein ungewolltes anhängen von Leerzeichen die (unsichtbar) hinter dem letzten % liegen könnten.
Bei der Variante mit Anführungszeichen wird nur alles bis zum letzten " in die Variable geschoben, was nach dem letzten " wird automatisch entfernt

Gruß
jeb
Bitte warten ..
Mitglied: asd333
07.04.2011 um 15:19 Uhr
Herzlichen Dank für euere Mühen, mit den Leerzeichen hat alles geklappt und ich steig jetzt bei Batch&Shell voll durch. ;)
Grüße,
Andreas
Bitte warten ..
Mitglied: bastla
07.04.2011 um 16:59 Uhr
@jeb
Funktioniert noch besser bei Verwendung einer geraden Anzahl von Anführungszeichen ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
07.04.2011 um 17:05 Uhr
@bastla
Zitat von bastla:
@jeb
Funktioniert noch besser bei Verwendung einer geraden Anzahl von Anführungszeichen ...
Genauer gesagt, bei einer geraden Anzahl größer als 1.
Nun aber genug der versteckten Hinweise...

Grüße
Biber
Bitte warten ..
Mitglied: bastla
07.04.2011 um 17:11 Uhr
[OT]
@Biber
Genauer gesagt, bei einer geraden Anzahl größer als 1.
Dass Du schon wieder alle schmutzigen Details verraten musst ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: jeb-the-batcher
07.04.2011 um 17:11 Uhr
@bastla, biber

Jaja ich habs gesehen und editiert

Aber genau genommen kommt es nur darauf an, dass vor dem Variabelnamen das erste Anführungszeichen ist,
dann gilt die Regel:
Es wird alles bis zum letzen Anführungszeichen genommen, aber das letzte gehört nicht mehr zum String.

Funktioniert also auch bei ungerader Anzahl

01.
set "var1=ausgeglichen wie ich bin"  ab hier wird alles geschluckt 
02.
set "var2=unausgeglichen wie eine "Frau" und dies hier wird auch geschluckt 
03.
echo #%var1%# 
04.
echo #%var2%# 
05.
-- OUTPUT --- 
06.
#ausgeglichen wie ich bin# 
07.
#unausgeglichen wie eine "Frau#
Grüße
jeb
Bitte warten ..
Mitglied: jeb-the-batcher
07.04.2011 um 17:18 Uhr
Und weils so schön ist, noch ein weiteres offensichtliches Beispiel

01.
setlocal DisableDelayedExpansion 
02.
set "var1=#a^" 
03.
set "var2=#^" ! 
04.
setlocal EnableDelayedExpansion 
05.
set "var3=#^" 
06.
set "var4=#^" ! 
07.
 
08.
set var 
09.
--- OUTPUT --- 
10.
var1=#^ 
11.
var2=#^ 
12.
var3=#^ 
13.
var4=#
Man beachte var4

Gruß
jeb
Bitte warten ..
Mitglied: 99045
07.04.2011 um 17:21 Uhr
Zitat von Biber:
Genauer gesagt, bei einer geraden Anzahl größer als 1.

Einen hätte ich da als Korinthenkacker auch noch:
Eine gerade Anzahl ist immer größer 1. Denn 0 ist eben keine Anzahl.
irgendwelche Einwände?
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Syntaxfehler, aber finde ihn nicht :(

gelöst Frage von PinkFLuffyUnicornBatch & Shell5 Kommentare

Hi, ich wollte mir mal in Batch ein kleines Menü schreiben um all meine Kleineren Scripte dort einbinden zu ...

Datenbanken

Syntaxfehler VBA

gelöst Frage von Dr.CornwallisDatenbanken6 Kommentare

Liebe Gemeinde, ich bräuchte Hilfe beim folgenden VBA Code(für Button in Access): Könnte mir bitte jemand erklären was ich ...

Datenbanken

Syntaxfehler VBA Access 2010

gelöst Frage von Dr.CornwallisDatenbanken6 Kommentare

Liebe Gemeinde, ich habe (schon wieder) einen Fehler im Code und ich komm einfach nicht drauf warum es nicht ...

Microsoft

Einfache Lösung zum Syncen von Dateien auf Tablet

Frage von hushpuppiesMicrosoft11 Kommentare

Hallo zusammen, ich hätte eine Frage zu folgendem Szenario: Bauleiter geht auf Baustelle und möchte gerne Pläne, Aktennotizen usw. ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 23 StundenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...