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

Fehler Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendert wird, was kann ich tun?

Frage Entwicklung Batch & Shell

Mitglied: Swenni2k

Swenni2k (Level 1) - Jetzt verbinden

16.02.2007, aktualisiert 10:26 Uhr, 10145 Aufrufe, 1 Kommentar

Hallo zusammen,

ich habe mir ein Batch gebaut, welches soweit funktioniert jedoch meldet es "Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird". Die geschiet seitdem ich versuche alle Aktionen in ein Logfile zuschreiben. Nach mehreren Versuchen habe ich herausgefunden, dass es in der :DoIt1 nach der "del" Funktion kommt, sprich durch den Aufruf der der Umleitung in die Log. Wenn ich das weg lasse geht es, aber es geht natürlich nicht in die log! Was muss ich ändern und warum? Ausserdem zeigt er das an: siehe unten
hier mal die Batch vielleicht sieht ja jemand den Fehler:

01.
@echo off & setlocal enableDelayedExpansion 
02.
 
03.
for /f "tokens=1,2" %%i in ('cscript //nologo C:\Scripts\EnumerateReadyCDDrives.vbs') do (set "CDName=%%~i") & (set CDDrive=%%j) & echo %%~i - %%j 
04.
if [%CDName%]==[0405092228] (set "UNC=\\LAPBINE\share\Testumgebung\%CDName%") & goto :DoIt 
05.
if [%CDName%]==[InfovisSet] (set "UNC=\\LAPBINE\share\Testumgebung\%CDName%") & goto :DoIt 
06.
goto :eof 
07.
 
08.
:DoIt 
09.
fOR /F "tokens=1-3 delims=/. " %%a in ("%date%") do set CDATE=%%c-%%b-%%a 
10.
for /F "tokens=1,2 delims=: " %%a in ('time /t') do set ZEIT=%%a%%b 
11.
set "logfile=%UNC%\%CDATE%_%ZEIT%_CDCOPY_LOG.txt" 
12.
goto :DoIt1 
13.
 
14.
:DoIt1 
15.
del /q /f /s "%UNC%\*.*" >>%logfile% 
16.
if exist %UNC% dir /b /A:-d %UNC%>nul 2>nul ||  echo ***** %UNC% ist leer ***** >"%logfile%" 
17.
if exist %UNC% dir /b /A:-d %UNC%>nul 2>nul &&  echo !!!!! %UNC% ist nicht leer !!!!! >"%logfile%" 
18.
Set "sourcefiles=%CDDrive%\*.*" & set "targetdir=%UNC%\" 
19.
Set "xcopyOpts= /s /e /y /i /h /r /k" 
20.
Set "tmplist=c:\Testumgebung\x2copy.lst 
21.
xcopy %xcopyOpts% /L "%sourcefiles%" "%targetdir%" >%tmplist% 
22.
for /f %%i in ('findstr "Datei(en)" %tmplist%') do Set /a Anzahl=%%i 
23.
for /f "delims=" %%i in ('findstr /v "Datei(en)" %tmplist%') do call :XCopyIt "%%i" "%sourcefiles%" 
24.
del %tmplist% 
25.
goto :eof 
26.
 
27.
:XCopyIt Parameter1: FQ-Quelldateiname para2: Sourcefiles 
28.
echo noch %Anzahl% Dateien... 
29.
set "targetsubpath=%~dp1" 
30.
xcopy %xcopyOpts% %1 %targetDir%!targetSubpath:%~dp2=! goto :Mail >>"%logfile%" 
31.
set /a Anzahl-=1 
32.
goto :eof 
33.
 
34.
:Mail 
35.
echo versende Mail mit Logdatei 
36.
set eMail=schnickschnack@web.de 
37.
set subj=-s "Logdatei von CDCopy" 
38.
set server=-server smtp.web.de 
39.
set password=-pw password 
40.
set user=-u schnickschnack@web.de 
41.
set x=-x "X-Header-Test: Can Blat do it? Yes it Can!" 
42.
set debug=-debug -log blat.log -timestamp  
43.
blat %0 -to %eMail% -f %eMail% %subj% %server% %user% %passsword% %debug% %x% 
44.
goto :eof 
01.
0405092228 - D: 
02.
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess 
03.
 verwendet wird. 
04.
noch 71 Dateien... 
05.
Unzulässige Parameteranzahl 
06.
noch 70 Dateien... 
07.
Unzulässige Parameteranzahl 
08.
noch 69 Dateien... 
09.
Unzulässige Parameteranzahl 
10.
noch 68 Dateien... 
11.
Unzulässige Parameteranzahl 
12.
noch 67 Dateien... 
13.
Unzulässige Parameteranzahl 
14.
noch 66 Dateien... 
15.
Unzulässige Parameteranzahl 
16.
... 
17.
noch 3 Dateien... 
18.
Unzulässige Parameteranzahl 
19.
noch 2 Dateien... 
20.
Unzulässige Parameteranzahl 
21.
noch 1 Dateien... 
22.
Unzulässige Parameteranzahl
Und die email wird auch nicht versendet

Vielen Dank für eure Hilfe
Mitglied: bastla
16.02.2007 um 10:26 Uhr
Hallo Swenni2K!

Nach
01.
set "logfile=%UNC%\%CDATE%_%ZEIT%_CDCOPY_LOG.txt"
soll Dein Logfile im Pfad %UNC% angelegt werden, den Du mit
01.
del /q /f /s "%UNC%\*.*" >>%logfile%
aber gleich ganz radikal von allen Dateien befreist - vielleicht wäre das Log anderswo besser aufgehoben ...

BTW: Das "goto :DoIt1" mit unmittelbar folgender Sprungmarke ":DoIt1" ist relativ sinnfrei und die beiden "if exist ..." - Zeilen ließen sich so zusammenfassen:
01.
if exist %UNC% dir /b /A:-d %UNC%>nul 2>nul && (echo !!!!! %UNC% ist nicht leer !!!!! >>"%logfile%") || echo ***** %UNC% ist leer ***** >>"%logfile%"
Dass Du beim Überprüfen auf "ist leer" mit dem Schalter "/A:-d" bewusst Unterverzeichnisse ignorierst, ist vermutlich Absicht ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...