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 Script funktioniert nicht mehr, wenn es unter Startmenü ausgeführt wird

Mitglied: joe65

joe65 (Level 1) - Jetzt verbinden

14.10.2013 um 19:24 Uhr, 1490 Aufrufe, 5 Kommentare

Das folgende Batch-Script funktioniert nicht mehr, wenn ich es in das Startmenü von Windows 7 einbinde und von dort aus ausführen will.
Ich bekomme dann den Fehler: Zugriff verweigert.
Meine Vermutung ist, das auf die "Ergebnisdatei" nicht zugegriffen werden kann.
01.
@echo off 
02.
setlocal 
03.
cls 
04.
mode con: cols=130 lines=50 
05.
 
06.
Title Anzahl Dateien ermitteln 
07.
 
08.
set "Ergebnisdatei=Anzahl_Dateien_%date%.txt" 
09.
 
10.
:setPath 
11.
color 07 
12.
set myPath= 
13.
set /p myPath=Geben Sie das Verzeichnis ein:  
14.
echo. 
15.
 
16.
if /i '%myPath%'=='' ( 
17.
  color 47 
18.
  echo Es wurde kein Verzeichnis eingegeben! 
19.
  pause 
20.
  goto setPath 
21.
22.
if /i not exist %myPath% ( 
23.
  color 47 
24.
  Ungueltiges Verzeichnis: %myPath% 
25.
  goto setPath 
26.
27.
 
28.
echo Anzahl der Dateien im Verzeichnis %myPath% ermitteln 
29.
echo und in eine Ergebnisdatei = %Ergebnisdatei% schreiben! 
30.
pause 
31.
 
32.
echo Bitte warten ... 
33.
echo Startzeit: %time% >> "%Ergebnisdatei%" 
34.
for /f %%k IN ('dir "%myPath%" /s /b /A-D ^| find /c /v ""') DO @echo %%k Datei(en) im Verzeichnis %myPath% vorhanden. >> %Ergebnisdatei% 
35.
echo Endezeit: %time% >> "%Ergebnisdatei%" 
36.
 
37.
color 27 
38.
echo. 
39.
echo Anzahl Dateien wurden ermittelt! 
40.
pause
Grüße
joe65
Mitglied: DerWoWusste
14.10.2013 um 20:54 Uhr
Hi.

In welchem Ordner liegt das Skript? Das Startmenü ist mehr als zweideutig.
Bitte warten ..
Mitglied: AndreasHoster
14.10.2013 um 22:50 Uhr
Ich würde es mal ohne @echo off probieren, dann sieht man was es tut und wo es hängenbleibt.
Sehen was passiert könnte helfen ...
Bitte warten ..
Mitglied: joe65
15.10.2013 um 20:46 Uhr
Hallo,

habe den echo off rausgenommen.
Der Fehler "Zugriff verweigert" tritt 3 mal auf.
1. Mal bei Codestelle:
01.
echo Startzeit: %time% >> "%Ergebnisdatei%"
2. Mal bei Codestelle:
01.
for /f %%k IN ('dir "%myPath%" /s /b /A-D ^| find /c /v ""') DO @echo %%k Datei(en) im Verzeichnis %myPath% vorhanden. >> %Ergebnisdatei%
3. Mal bei Codestelle:
01.
echo Endezeit: %time% >> "%Ergebnisdatei%"
Es sieht so aus, als hat er Probleme mit der Ergebnisdatei.
Die Batch-Routine (Anzahl_Dateien.cmd) liegt im Verzeichnis D:\Meine_Dateien.
Wenn ich die Routine direkt vom Verzeichnis aufrufe habe ich keine Probleme.
Das Script habe ich ins Startmenü gestellt, indem ich einfach durch Shift + "Rechte Maus Click" auf die Datei den Menüpunkt "An Startmenü anheften" gewählt habe.

Grüße
joe65
Bitte warten ..
Mitglied: pieh-ejdsch
17.10.2013, aktualisiert um 18:39 Uhr
moin,

bei echo off sieht man ja schon wenig aber bei Echo OM ON ist noch etwas Betriebsblindheit vorhanden:
C:\Windows\system32>Title Anzahl Dateien ermitteln 
 
C:\Windows\system32>set "Ergebnisdatei=Anzahl_Dateien_%date%.txt" 
...
Im Systemverzeichnis herummalen ist auch nicht gut.

Falls es mal wieder hakt ist ein Test besser:
01.
::@echo off 
02.
 rem hat in einer Ungetesteten Batch/Bereich nichts verloren 
03.
 rem wenn ich Eine Batch teste dann lege ich ECHO ON/ECHO OFF in 
04.
 rem einer Offenen CMD_Line fest und starte darin den Batch 
05.
 
06.
setlocal 
07.
 rem Ein paar kleine Helferlein 
08.
 rem zum testen von Batchdateien 
09.
 
10.
 rem Prompt kuerzer einstellen [Gilt in diesem SetLocal ] 
11.
set Prompt=$G$S 
12.
 
13.
 rem Wenns nacher auch so sein soll: Prompt $G$S 
14.
 
15.
 rem Echo Ausgabe? 
16.
call :checkECHO 
17.
 
18.
:checkCMDline Überprüft ob die Batch in der Kommandozeile gestartet wurde. 
19.
@echo off 
20.
setlocal disabledelayedexpansion 
21.
 rem CMD-Kontex ? 
22.
set "CMDPause=%~f0" 
23.
set "CMDPause=%CMDPause:\=\\%" 
24.
set "CMDPause=%CMDPause:.=\.%" 
25.
setlocal enabledelayedexpansion 
26.
for /f delims^= %%i in ("!CMDcmdLine!") do endlocal &set "CMDPin=%%i" 
27.
cmd /von /c "echo !CMDPin!" |findstr /irc:"cmd .*\/c \"\"%CMDPause%\" .*\"" >nul &&endlocal &&set "CMDPause=pause &" ||endlocal &&set "CMDPause="  
28.
:;end_checkCMDline Variable CMDpause wird im Batchkontex zur verfügung gestellt. 
29.
 
30.
 rem Wiederherstellen der vorigen ECHO einstellung 
31.
if %mon%. equ rem. echo on 
32.
 
33.
%mon% Ich laufe in diesem Verzeichnis: 
34.
cd 
35.
%mon%  
36.
%mon% Der name der Batchdatei ist: 
37.
%mon% 	%~n0 
38.
%mon% 
39.
%mon% Der Pfad der Batchdatei ist:  
40.
%mon% 	%~dp0 
41.
%mon% 
42.
 
43.
call :sub1 
44.
if errorlevel 1 echo Fehler im vorigen Befehl 
45.
call :sub check 
46.
if errorlevel 1 echo Fehler im vorigen Befehl 
47.
if errorlevel 0 echo voriger Befehl erfolgreich  
48.
goto :weiter Hinter der Sub 
49.
 if errorlevel 1 rem Der Fehler wird beim goto nicht angezeigt 
50.
:sub 
51.
%mon% Wo laufe ich denn? 
52.
setlocal enabledelayedexpansion 
53.
set R=%0 
54.
if !R:~^,1! neq : (endlocal 
55.
 %mon% Ich bin in der Batch: "%~f0" 
56.
 %mon% die Paramter der Batch sind: %* 
57.
) else ( 
58.
 %mon% Ich bin in der Subroutine: %0 
59.
 %mon% die Paramter der Subroutine sind: %* 
60.
61.
%mon% 
62.
exit /b 0 
63.
 
64.
:weiter 
65.
%mon% Wo laufe ich denn? 
66.
setlocal enabledelayedexpansion 
67.
set R=%0 
68.
if !R:~^,1! neq : (endlocal 
69.
 %mon% Ich bin in der Batch: "%~f0"  
70.
 %mon% 
71.
 %mon% die Paramter der Batch sind: %* 
72.
) else ( 
73.
 %mon% Ich bin in der Subroutine: %0 
74.
 %mon% 
75.
 %mon% die Paramter der Subroutine sind: %* 
76.
77.
 
78.
 rem Das Verzeichnis der Batchdatei verwenden 
79.
pushD "%~dp0" 
80.
cd 
81.
 
82.
popD 
83.
 rem und nun gibts eine Pause wenn dieser Batch nicht im CDM-Kontex ist, 
84.
 rem was  man ja beim Testen ohnehin in einer offenen CMD-Line tun sollte. 
85.
%cmdpause% exit /b 
86.
 
87.
:checkECHO Um eine Batch vor dem Produktivbetrieb zu testen 
88.
 rem Mon Zeilen bei ECHO ON auf REM umschalten, um zB. Kommentarzeilen  
89.
 rem auch bei ECHO OFF anzuzeigen sowie die vorherige Wiedergabe des Echos 
90.
 rem bei echo on zu unterbinden wird die Variable Mon dementsprechend gesetzt. 
91.
echo>"%temp%\isOn.echocheck" 
92.
< "%temp%\isOn.echocheck" find "ON" >nul && set "Mon=rem" || set "Mon=echo(" 
93.
del "%temp%\isOn.echocheck" 
94.
:;end_checkECHO 
95.
exit /b
Gruß Phil
Bitte warten ..
Mitglied: joe65
20.10.2013 um 16:40 Uhr
Hallo Phil,

Danke für deine Anmerkungen. Ich habe mittlerweile festgestellt, das der Fehler "Zugriff verweigert" nicht mehr kommt, wenn man eine Verknüpfung des Batch-Scripts in das Startmenü stellt. Werde die Frage als gelöst markieren.

Gruß
joe65
Bitte warten ..
Ähnliche Inhalte
JavaScript

VBS-Script wird nicht vollständig ausgeführt

Frage von HousefrauJavaScript3 Kommentare

Hallo zusammen, wir lassen über eine Gruppenrichtlinie einen Script ausführen, welcher die Drucker der einzelnen Parteien mappen soll. Leider ...

Batch & Shell

Powershell-Script soll von Client ausgeführt werden

gelöst Frage von br00talBatch & Shell10 Kommentare

Dere :) Ich hab wieder mal paar Fragen. 1. Sollte ein Powershell-Script schreiben mit dem auf einen Klick eine ...

Batch & Shell

Mit welchen Rechten wird ein Startup Script ausgeführt?

gelöst Frage von vessevBatch & Shell3 Kommentare

Hallo, ich habe hier ein Startup Script das über GPO ausgelöst werden soll. Computer Configuration -> Policies -> Windows ...

Windows 7

Netlogon-Script wird an einem Arbeitsplatz des öfteren nicht ausgeführt

gelöst Frage von KMP1988Windows 75 Kommentare

Servus zusammen, ab und zu wird bei einem Windows7-PC das Netlogonscript (in einer Server 2008R2 Domäne) nicht ausgeführt. Meistens ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 7 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 18 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 18 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 18 StundenHardware11 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux23 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL18 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

LAN, WAN, Wireless
Kommunikation zwischen verschiedenen IP-Bereichen
Frage von DirkHoLAN, WAN, Wireless13 Kommentare

Hallo zusammen, von Unitymedia habe ich ein neues Modem (Connect Box) erhalten, das u.a. IPv4 aber keinen Bridge Mode ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...