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

Fehlersuche in Batch

Frage Entwicklung Batch & Shell

Mitglied: tim1986

tim1986 (Level 1) - Jetzt verbinden

22.07.2008, aktualisiert 23.07.2008, 4634 Aufrufe, 35 Kommentare

Brauche hilfe ich find den fehler einfach nicht
würd mich sehr freuen wenn mir jemand helfen könnte...

01.
:start  
02.
 
03.
	FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=08%%b 
04.
 
05.
	  
06.
	findstr /c:"name1" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
07.
 
08.
		IF %ERRORLEVEL% == 0 goto netsend1 
09.
 
10.
	  
11.
	findstr /c:"name2" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
12.
 
13.
		IF %ERRORLEVEL% == 0 goto netsend2 
14.
 
15.
	 
16.
	findstr /c:"name3" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
17.
 
18.
		IF %ERRORLEVEL% == 0 goto netsend3 
19.
 
20.
 
21.
	findstr /c:"name4" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
22.
 
23.
		IF %ERRORLEVEL% == 0 goto netsend4 
24.
 
25.
goto :start 
26.
 
27.
 
28.
:netsend1 
29.
 
30.
	for /f "tokens=1" %%i in (c:\achtung1.log) do call :netsendall %%i 
31.
 
32.
 
33.
		goto :copypaste  
34.
 
35.
:netsend2 
36.
 
37.
	for /f "tokens=1" %%i in (c:\achtung2.log) do call :netsendall %%i 
38.
 
39.
 
40.
		goto :copypaste 
41.
 
42.
:netsend3 
43.
 
44.
	for /f "tokens=1" %%i in (c:\achtung3.log) do call :netsendall %%i 
45.
 
46.
 
47.
		goto :copypaste 
48.
 
49.
:netsend4 
50.
 
51.
	for /f "tokens=1" %%i in (c:\achtung4.log) do call :netsendall %%i 
52.
 
53.
 
54.
		goto :netsendall 
55.
 
56.
:netsendall 
57.
 
58.
net send * %1 
59.
 
60.
:copypaste 
61.
 
62.
	FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=08%%b 
63.
 
64.
		findstr "name1" C:\WINDOWS\system32\LogFiles\IN%cdate%.log > C:\zugriffe.log 
65.
 
66.
	 	 findstr "name2" C:\WINDOWS\system32\LogFiles\IN%cdate%.log > C:\zugriffe.log 
67.
 
68.
		  findstr "name3" C:\WINDOWS\system32\LogFiles\IN%cdate%.log > C:\zugriffe.log 
69.
		    
70.
		   findstr "name4" C:WINDOWS\system32\LogFiles\IN%cdate%.log > C:\zugriffe.log 
71.
 
72.
	delete C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
73.
 
74.
		start c:\vpnueberwachung.bat 
75.
 
76.
exit
35 Antworten
Mitglied: Nailara
22.07.2008 um 22:44 Uhr
Hi,

was kommt denn dabei raus?

Grüße
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 22:46 Uhr
die batch löscht die datei nicht wie hier geschrieben
01.
del C:\WINDOWS\system32\LogFiles\IN%cdate%.log
dadurch verfängt sich die batch in ner endlosschleife...

ich bekomme die fehlermeldung das die datei von einem anderen prozess geöffnet wurde
Bitte warten ..
Mitglied: 67369
22.07.2008 um 22:53 Uhr
1. Zwischen Befehl/Programm und Parameter gehört normalerweise ein Leerzeichen.
2. date /t kannst du ersetzen durch %date%
3. was soll 08%%b ergeben? Wenn du ein normal formatiertes in DE übliches Datum verwendest,
würde dabei 0822.07.08 bzw. 08.22.07.2008 rauskommen.
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 22:57 Uhr
08%%b ergibt "0807" da windows die log so anlegt das funktioniert auch
date/t funktioniert auch...
Bitte warten ..
Mitglied: Biber
22.07.2008 um 22:58 Uhr
moin tim1986,

ändert sich das Verhalten des Schnipsels, wenn Du
del C:\WINDOWS\system32\LogFiles\IN%cdate%.log
statt wie oben
delete C:\WINDOWS\system32\LogFiles\IN%cdate%.log
... schreibst?

Und wenn Du dem DEL einen Parameter /Y mitgibst, weil Du ein Wildcard-Löschen versuchst?

Und ist es sinnvoll, jedesma, mit " > C:\zugriffe.log " die Datei Zugiffe.log neu zu erzeugen?
Ginge nicht auch ein Anfügen mit ">>"?
Und würde nicht auch ein
FOR /F "tokens=2 delims=/. " %a in ("%date%") do whatever mit %a
reichen?

Grüße
Biber
Bitte warten ..
Mitglied: 67369
22.07.2008 um 23:00 Uhr
08%%b ergibt "0807"
Stimmt, mein Fehler. Ich habe delims nicht beachtet.
Bitte warten ..
Mitglied: Nailara
22.07.2008 um 23:01 Uhr
Hm - im Batch sehe ich nicht, dass ein Dienst gestoppt wurde - es könnte also in der Tat sein, dass ein Prozess noch auf die Datei zugreift und daher das Löschen nicht funktioniert.

Kannst Du den Dienst vor Ablauf des Skripts stoppen?

Grüße
Bitte warten ..
Mitglied: Nailara
22.07.2008 um 23:03 Uhr
@Biber:

Ist irgendwie komisch - in machen Situationen muss es tatsächlich %%a heissen - da reicht ein %a nicht. Warum habe ich noch nicht begriffen, doch MS schreibt das auch so im Technet .... Hm ...

Grüße Mathias
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 23:05 Uhr
- leider nicht das is mir auch aufgefallen als ich den code reingestellt habe...

- der parameter wird nicht erkannt "del /Y"

- FOR /F "tokens=2 delims=/. " %a in (%date%) do whatever mit %a ist zwar prinziepiel besser aber hilft bei dem prob leider grad nicht

- das mit dem anfügen hab ich irgendwie verrafft^^

also problem besteht noch...
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 23:08 Uhr
da wüsste ich grad nicht wie ich den dienst stoppen sollte weil das script im hintergrund laufen soll und eine einwahl am vpn server über net send melden soll also "live"
Bitte warten ..
Mitglied: 67369
22.07.2008 um 23:13 Uhr
Schreib die Ausgabe des del/delete-Befehls doch auch in eine Logdatei, dann siehst du, was dabei rauskommt und warum die nicht gelöscht wird.

%% muss man bei Schleifenvariablen immer einsetzen, wenn sie im Batch verwendet werden, in der Konsole eingegeben gehört da nur ein %-Zeichen hin.
Bitte warten ..
Mitglied: Biber
22.07.2008 um 23:13 Uhr
@Nailara
<OT>

<grins>
ich wollte eher auf die "Tokens=2" statt "tokens=1-5"
und das "%date%" statt 'date /T' hinaus...
Ich mache einen proof-of-concept eher am CMD-Prompt bevor ich mich an so einen Vielzeiler wie oben herantraue...
... wenn ich das überhaupt jemals wagen würde..
DAHER DAS %a statt %%a
</OT>
doch MS schreibt das auch so im Technet...
Ich gebe zur Not sogar M$ Recht, wenn sie es tatsächlich mal haben sollten...

Grüße
Biber
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 23:18 Uhr
del C:\WINDOWS\system32\LogFiles\IN0807.log > c:\fehler.log

sollte doch richtig sein alerdings bekomme ich so nur die pfad angabe in die log

"C:\WINDOWS\system32\LogFiles\IN0807.log"
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 23:25 Uhr
es scheint tatsächlich an dem windows dienst zu liegen hab grad versucht sie von hand zu löschen und das geht auch nicht...
kann ich die datei irgendwie leeren ohne das der windows dienst mekkert?
ansonsten würd ich die datei von nem script kopieren lassen und die kopie wür die vpn überwachung nutzen, was aber wie ich finde ne unschöne lösung währe...
Bitte warten ..
Mitglied: Nailara
22.07.2008 um 23:28 Uhr
Hi,

ist der Dienst kooperativ, dann könnte man schauen, ob man die Datei mit einem C-Programm zum Schreiben öffnet, alles löscht und dann schliesst (unter Unix macht das Logrotate, aber unter Windows .... ). Ist der Dienst nicht kooperativ, dann wüßte ich keine Möglichkeit....

Grüße
Bitte warten ..
Mitglied: 67369
22.07.2008 um 23:35 Uhr
Probiere das mal und erzähle, was in der fehler.log steht.

del C:\WINDOWS\system32\LogFiles\IN0807.log > c:\fehler.log 2>&1

Eine Fehlermeldung bekommst du doch sicher, wenn du händisch das Löschen versuchst?
Und die ist streng geheim?
Welcher Dienst?
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 23:41 Uhr
"Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird."

isn n protokolldienst "ras_protokollierung" welcher genau weiß ich nicht, aber das format wüst ich noch"IAS"
Bitte warten ..
Mitglied: 67369
22.07.2008 um 23:45 Uhr
Dann stoppe doch den Dienst kurzzeitig, kopiere die Logdatei woanders hin und starten den Dienst wieder, dann greifst du auf die Kopie zu.

Vielleicht kannst du auch mit Unlocker eine kurzzeitige Freigabe des Handles erreichen, ohne STOP und START.
Bitte warten ..
Mitglied: tim1986
22.07.2008 um 23:49 Uhr
zum kopieren brauche ich den dienst ja nicht zu stoppendas würde auch so gehen aber um das ganze automatisch zu halten müsste ich dann n 2tes script einsetzten, und da ist erstens die fehlerquelle größer und zweitens hätte ich dann noch mehr müll-logs rumfliegen


mal ne doofe frage zwischendurch wie wirkt sich das eigendlich auf den arveitsspeicher aus wenn ne batch ne woche oder n monat durchläuft?

ich hab da immer son bischen angst deswegen auch am ende der befehl die batch neu zu starten und die alte zu beenden...
Bitte warten ..
Mitglied: Nailara
22.07.2008 um 23:57 Uhr
In einem Batch ist Unlocker nicht so besonders effektiv - gibt es da noch was anderes?
Bitte warten ..
Mitglied: 67369
22.07.2008 um 23:57 Uhr
Guck dir im Taskmanager an, wie die Auslastung ist und wieviel Speicher verbraten wird.

Ich blick da sowieso nicht durch, was du mit der Batch eigentlich bezweckst, mal ganz abgesehen davon, dass ich das Lesen dieser auseinandergezogenen Texte nicht als besonders übersichtlich ansehe.

Aus den Zeilen

findstr /c:"name1" C:\WINDOWS\system32\LogFiles\IN%cdate%.log
IF %ERRORLEVEL% == 0 goto netsend1

kannst du beispielsweise eine machen:
findstr /c:"name1" C:\WINDOWS\system32\LogFiles\IN%cdate%.log && goto :netsend1
Bitte warten ..
Mitglied: 67369
22.07.2008 um 23:58 Uhr
Wieso ist der nicht effektiv?

Unlocker Objektname -S
Bitte warten ..
Mitglied: tim1986
23.07.2008 um 00:04 Uhr
@ BauerHick

also je mehr code du hast um so dankbarer bist du wenn du nicht alles in eine zeile quetscht...

ich könnte das ganze ding auch dicht an dicht zusammen ziehen aber das macht es noch unleserlicher wie ich finde...

aber ich denke das ist jedem selbst überlassen^^

zur funktion ich will damit das ras protokollüberwachen um zu sehen wann sich wer über vpn einwählt und mir eine nachricht per "net send" informieren lassen...
Bitte warten ..
Mitglied: Nailara
23.07.2008 um 00:05 Uhr
Dieser Unlocker?

http://ccollomb.free.fr/unlocker/

Der wird doch mit der Maus bedient oder deute ich jetzt die Screenshots falsch???? Die Anleitung sagt: "1. Simply right click the folder or file and select Unlocker" .... Mausbedienung im Batch würde ich als schlecht ansehen - kann aber auch am Wetter liegen ....
Bitte warten ..
Mitglied: tim1986
23.07.2008 um 00:08 Uhr
der unlocker läuft wohl auch auf command line allerdings wird der den protokolldienst killen und denn wieder fnden und starten... naja^^
Bitte warten ..
Mitglied: Nailara
23.07.2008 um 00:08 Uhr
Könnte Dir das Tool vielleicht helfen?

http://www.microsoft.com/technet/scriptcenter/tools/logparser/default.m ...

Dann brauchst Du möglicherweise nix umkopieren ...
Bitte warten ..
Mitglied: 67369
23.07.2008 um 00:08 Uhr
Dieser Unlocker?
Genau der.

Unlocker /? schon mal probiert?
Bitte warten ..
Mitglied: 67369
23.07.2008 um 00:10 Uhr
Jetzt steige ich aus. Das wird heute nichts mehr.
Bitte warten ..
Mitglied: Nailara
23.07.2008 um 00:16 Uhr
Nein - nicht probiert weil nicht installiert - erstmal nur den Hinweis in meine Lösungbibliothek aufgenommen und die Webseite überflogen - ein Bild sagt mehr als 1000 Worte.

Erst die FAQ hat den entscheidenden Hinweis enthalten und den habe ich zu spät - nämlich gerade eben erst auf der Suche nach dem richtigen Programm - gelesen. Muss wohl doch am Wetter liegen - ich geh gleich in den Schatten....
Bitte warten ..
Mitglied: 67369
23.07.2008 um 00:19 Uhr
Das Tool gehört imo auf jeden Rechner, genauso wie die Sysinternals-Suite.
Bitte warten ..
Mitglied: tim1986
23.07.2008 um 00:28 Uhr
könnte wohl brauchbar sein aber ich raff das ding irgendwie nicht ich muss mich da wohl mal in ner ruhigen woche reinlesen

aber tausend dank für die ausführliche hilfe
Bitte warten ..
Mitglied: tim1986
23.07.2008 um 13:22 Uhr
kommen wir zum nächsten problem^^ wie kann ich den timestamp der log auslesen und mit der aktuellen zeit vergleichen damit er nur ne kopie macht wenn sich die log verändert hat?
sollte zumindest minutengenau sein...

freue mich auf eure ideen
Bitte warten ..
Mitglied: 67369
23.07.2008 um 13:27 Uhr
Help FOR. Da findest du dann unten die Variablen, die dir die Zeitangaben für eine existierende Datei liefern. Die aktuelle Zeit bekommt man mit %time%
HELP SET erklärt dir, wie man die Variablen beackert, also nur bestimmte Stellen verwenden kann.
Bitte warten ..
Mitglied: tim1986
23.07.2008 um 13:46 Uhr
jo vielen dank so lernt mann immer mal wieder was dazu^^
Bitte warten ..
Mitglied: tim1986
23.07.2008 um 16:59 Uhr
so, habe fertig^^ hab das prob jetzt wie oben beschrieben mit "unlock lösen können funktioniert auch alles bestens...

wollte mich nochmal bei allen die mir mit rat und tat geholfen haben bedanken

hoffe ich kann mich bei gelegenheit mal revangieren

mfg der tim

ps: hier nochmal der fertige code fals es jemanden interessiert

01.
@echo off 
02.
 
03.
 
04.
:start 
05.
 
06.
	FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=08%%b 
07.
 
08.
	  
09.
	findstr /c:"name1" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
10.
 
11.
		IF %ERRORLEVEL% == 0 goto netsend1 
12.
 
13.
	  
14.
	findstr /c:"name2" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
15.
 
16.
		IF %ERRORLEVEL% == 0 goto netsend2 
17.
 
18.
	 
19.
	findstr /c:"name3" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
20.
 
21.
		IF %ERRORLEVEL% == 0 goto netsend3 
22.
 
23.
 
24.
	findstr /c:"name4" C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
25.
 
26.
		IF %ERRORLEVEL% == 0 goto netsend4 
27.
 
28.
goto :start 
29.
 
30.
:netsend1 
31.
 
32.
	for /f "tokens=1" %%i in (c:\achtung1.log) do call :netsendall %%i 
33.
 
34.
 
35.
		goto :copypaste  
36.
 
37.
:netsend2 
38.
 
39.
	for /f "tokens=1" %%i in (c:\achtung2.log) do call :netsendall %%i 
40.
 
41.
 
42.
		goto :copypaste 
43.
 
44.
:netsend3 
45.
 
46.
	for /f "tokens=1" %%i in (c:\achtung3.log) do call :netsendall %%i 
47.
 
48.
 
49.
		goto :copypaste 
50.
 
51.
:netsend4 
52.
 
53.
	for /f "tokens=1" %%i in (c:\achtung4.log) do call :netsendall %%i 
54.
 
55.
 
56.
		goto :netsendall 
57.
 
58.
:netsendall 
59.
 
60.
	net send * %1 
61.
 
62.
goto :copypaste 
63.
 
64.
:copypaste 
65.
 
66.
	FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=08%%b 
67.
 
68.
		findstr "name1" C:\WINDOWS\system32\LogFiles\IN%cdate%.log >> C:\zugriffe.log 
69.
 
70.
		 findstr "name2" C:\WINDOWS\system32\LogFiles\IN%cdate%.log >> C:\zugriffe.log 
71.
 
72.
		  findstr "name3" C:\WINDOWS\system32\LogFiles\IN%cdate%.log >> C:\zugriffe.log 
73.
 
74.
		   findstr "name4" C:WINDOWS\system32\LogFiles\IN%cdate%.log >> C:\zugriffe.log		    
75.
 
76.
 
77.
		    
78.
	c:\programme\unlocker\unlocker C:\WINDOWS\system32\LogFiles\IN%cdate%.log -S 
79.
 
80.
	 del C:\WINDOWS\system32\LogFiles\IN%cdate%.log 
81.
 
82.
goto :quit 
83.
 
84.
:quit	   
85.
 
86.
	start /MIN c:\vpnueberwachung.bat 
87.
 
88.
exit 
89.
 
90.
 
91.
 
92.
 
93.
 
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...