VBS Script lieferfert seit ein paar Tagen Fehler Code 800A0046 Erlaubnis Verweigert
Hallo,
ich lasse mit folgendem Script (VBS) alle CSV Dateien in einem Verzeichnis jeweils das Komma durch Semikolon ersetzen.
letztmalig wurde dieses am 03.12 ausgeführt.
Heute liefert das Script an der Zeile 7 den Fehler Code 800A0046 Erlaubnis Verweigert.
Öffne ich die Dateien mit einem Texteditor / Sucher/ Ersetze kann ich ohne einen Fehler die Datei speichern.
Was kann / ist hier der Fehler , warum verweigert mir Windows mit dem Scrit den Zugriff.
Auch Test mit anderen Ordnern brachte keine Lösung.
Grüße aus München
ich lasse mit folgendem Script (VBS) alle CSV Dateien in einem Verzeichnis jeweils das Komma durch Semikolon ersetzen.
Ordner = "C:\Temp\"
Typ = "csv" 'in Kleinbuchstaben
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Datei In fso.GetFolder(Ordner).Files
If LCase(fso.GetExtensionName(Datei.Name)) = Typ Then
T = Datei.OpenAsTextStream.ReadAll
fso.CreateTextFile(Datei.Path).Write Mid(Replace(T, ",", ";"), InStr(T, vbNewline) + 2)
End If
Next
letztmalig wurde dieses am 03.12 ausgeführt.
Heute liefert das Script an der Zeile 7 den Fehler Code 800A0046 Erlaubnis Verweigert.
Öffne ich die Dateien mit einem Texteditor / Sucher/ Ersetze kann ich ohne einen Fehler die Datei speichern.
Was kann / ist hier der Fehler , warum verweigert mir Windows mit dem Scrit den Zugriff.
Auch Test mit anderen Ordnern brachte keine Lösung.
Grüße aus München
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 291412
Url: https://administrator.de/contentid/291412
Ausgedruckt am: 15.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo thomas1972,
eventuell solltest du mal versuchen explizit zum Lesen und Schreiben zu öffnen und ordnungsgemäß zu schließen. Ungetestet:
Grüße
rubberman
eventuell solltest du mal versuchen explizit zum Lesen und Schreiben zu öffnen und ordnungsgemäß zu schließen. Ungetestet:
Ordner = "C:\Temp\"
Typ = "csv" 'in Kleinbuchstaben
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Datei In fso.GetFolder(Ordner).Files
If LCase(fso.GetExtensionName(Datei.Name)) = Typ Then
With Datei.OpenAsTextStream(1)
T = .ReadAll
.Close
End With
With Datei.OpenAsTextStream(2)
.Write Mid(Replace(T, ",", ";"), InStr(T, vbNewline) + 2)
.Close
End With
End If
Next
Grüße
rubberman
Oder auch die Powershell in der CMD benutzen:
Gruß jodel32
powershell -ExecutionPolicy ByPass -Command "gci 'c:\temp\*.csv' | %%{(gc $_.FullName) -replace ',',';' | set-content $_.FullName}"
Wir haben bei uns im Haus einen Server, auf dem über den Aufgabenplaner mehrere Scripte zu unterschiedlichen Zeiten gestartet werden. Das funktioniert auch schon seit Jahren soweit ohne Probleme.
Vor ein paar Tagen funktionierte dann plötzlich der zeitgesteuerte Aufruf eines dieser Scripte nicht mehr. Bei der Fehlersuche habe ich versucht, das Script manuell zu starten und bekam dann auch die Fehlermeldung "Code 800A0046 Erlaubnis Verweigert".
Nach 2tägiger Recherche und Fehlersuche innerhalb des Scripts, habe ich dann irgendwann festgestellt, dass im Taskmanager ca. 40 "Windows Scripting Host" Tasks liefen.
Nach beenden aller gleichnamigen Tasks hat alles wieder wie gewünscht funktioniert. Anscheinend ist es so, dass jeder Task eines verunglückten VB Scriptaufrufs, bis zum nächsten Neustart des entsprechenden Rechners im Arbeitsspeicher verweilt.
Ich werde jetzt in alle Scripte eine Abfrage einbauen, die im Falle eines Fehlers innerhalb des Scripts, den Task abschießt.
Gruß
sayYES2IT
Vor ein paar Tagen funktionierte dann plötzlich der zeitgesteuerte Aufruf eines dieser Scripte nicht mehr. Bei der Fehlersuche habe ich versucht, das Script manuell zu starten und bekam dann auch die Fehlermeldung "Code 800A0046 Erlaubnis Verweigert".
Nach 2tägiger Recherche und Fehlersuche innerhalb des Scripts, habe ich dann irgendwann festgestellt, dass im Taskmanager ca. 40 "Windows Scripting Host" Tasks liefen.
Nach beenden aller gleichnamigen Tasks hat alles wieder wie gewünscht funktioniert. Anscheinend ist es so, dass jeder Task eines verunglückten VB Scriptaufrufs, bis zum nächsten Neustart des entsprechenden Rechners im Arbeitsspeicher verweilt.
Ich werde jetzt in alle Scripte eine Abfrage einbauen, die im Falle eines Fehlers innerhalb des Scripts, den Task abschießt.
Gruß
sayYES2IT