Jump to content

Der Zugriff auf den Pfad "XYZ" wurde verweigert


Direkt zur Lösung Gelöst von coldf1r3,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Zusammen,

ich bastel gerade ein Skript was in einer Textdatei aus 3 Zeilen Werte auslesen soll und diese dann in eine Zeile Kommasepariert einfügt.

Leider bekomme ich immer einen Zugriff verweigert Error, seitdem ich von einer festen Zeile auf nach Nummern suchen geändert habe. Jedoch ist die Abfrage ja vorher.

Bin noch Anfänger was Powershell angeht. Daher bin ich auch für andere Verbessungsvorschläge gerne offen.

 

$user = $env:USERPROFILE
$path = $MyInvocation.MyCommand.Path
$path = $path.Substring(0, $path.LastIndexOf('\gdtfix'))
Set-Location -Path $path
$dest = "..\work\"
$file= $path+"worklist*.txt"
Set-Location -Path ..
$timeout = 10
Write-Host $path
$FileSystemWatcher = New-Object System.IO.FileSystemWatcher $path
Write-Host Press CTRL+C to abort monitoring $path
while ($true) {
 $result = $FileSystemWatcher.WaitForChanged(‘all’, $timeout)
 if ($result.TimedOut -eq $false)
 {
 Write-Host "test"
$txt = $file
(gc $path -Force | % { if($_ -match "0010,2295") {$var1 = $_}})
$var1 = $var1.Substring(10)
(gc $path | % { if($_ -match "0010,4000") {$var2 = $_}})
$var2 = $var2.Substring(10)
(gc $path | % { if($_ -match "0010,2201") {$var3 = $_}})
$var3 = $var3.Substring(10)
(Get-Content -Path $txt)|%{$_ -replace "0010,4000,.+","0010,4000, $var1, $var2, $var3"}| Set-Content -Path $txt

Move-Item -Path $txt -Destination $dest
}}

 

Fehlermeldung:

gc : Der Zugriff auf den Pfad "PFAD" wurde verweigert.
In PFAD\GDTfix.ps1:18 Zeichen:2
+ (gc $path -Force | % { if($_ -match "0010,2295") {$var1 = $_}})
+  ~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (PFAD\GDTfix:String) [Get-Content], UnauthorizedAccessException
    + FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
 
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In PFAD\GDTfix.ps1:19 Zeichen:1
+ $var1 = $var1.Substring(10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
gc : Der Zugriff auf den Pfad "PFAD" wurde verweigert.
In PFAD\GDTfix.ps1:20 Zeichen:2
+ (gc $path | % { if($_ -match "0010,4000") {$var2 = $_}})
+  ~~~~~~~~
    + CategoryInfo          : PermissionDenied: (PFAD:String) [Get-Content], UnauthorizedAccessException
    + FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
 
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In PFAD\GDTfix.ps1:21 Zeichen:1
+ $var2 = $var2.Substring(10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
gc : Der Zugriff auf den Pfad "PFAD\GDTfix" wurde verweigert.
In PFAD\GDTfix.ps1:22 Zeichen:2
+ (gc $path | % { if($_ -match "0010,2201") {$var3 = $_}})
+  ~~~~~~~~
    + CategoryInfo          : PermissionDenied: (PFAD\GDTfix:String) [Get-Content], UnauthorizedAccessException
    + FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
 
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In PFAD\GDTfix.ps1:23 Zeichen:1
+ $var3 = $var3.Substring(10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

 

 

 

 

Vielen Dank schonmal für die Hilfe

Mit -Force hatte ich es auch bereits versucht. Dies hatte leider nicht geklappt.

bearbeitet von coldf1r3
Link zu diesem Kommentar
vor 18 Stunden schrieb daabm:

 Warum hoslt Du dreimal den Inhalt von $file? Einmal würde reichen.

Und warum holst Du den Inhalt der Zieldatei, wenn Anhängen reichen würde? :-)

 

Bin noch recht unerfahren mit Powershell und es sollte auch relativ schnell gehen, daher habe ich einfach Copy Paste gemacht gehabt.

Vom Aufbau gefällt es mir auch noch nicht. Kam nur noch nicht zum Optimieren ^^

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...