Ik heb een script gemaakt dat recursief door een folderstructuur wandelt. Het script werkt maar gaat stuk wanneer één van de onderliggende foldernamen brackets bevat. Op dat moment stop het script met de volgende foutmelding:
Directory-structuur in testomgeving:
D:\TEST
├───test
├───test2
├───test3
└───test[4]
Heeft iemand misschien een idee, hoe ik de variable mee kan geven aan de functie, zonder dat de call valt over de brackets. Ik maak in mijn script al gebruik van -literalpath dus de functie zelf ondervindt geen hinder van de brackets in de foldernaam.
code:
Dit gedrag is verklaarbaar, zie http://technet.microsoft.com/en-us/library/ff730956.aspx, brackets maken onderdeel uit van de range operator waardoor het scriptt het folderpath niet juist interpreteert. Er worden oplossingen geboden die helaas niet bruikbaar lijken in mijn script. 1
2
3
4
5
| Recurse : D:\test\test[4] is an invalid path. At D:\Persoonlijk\Scripting\Powershell\dir_test.ps1:15 char:14 + Recurse <<<< $file.FullName + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Recurse |
Directory-structuur in testomgeving:
D:\TEST
├───test
├───test2
├───test3
└───test[4]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function Recurse ([string]$path){ if (-not (Test-Path $path)) { Write-Error "$path is an invalid path." return $false } $files = @(dir -literalPath $path) if ($files -like $extension){ #hier ga ik wat doen } foreach ($file in $files) { if ($file.attributes -eq "directory"){ Write-Output $file.FullName Recurse $file.FullName } } } $extension = "*.txt" recurse "d:\test" |
Heeft iemand misschien een idee, hoe ik de variable mee kan geven aan de functie, zonder dat de call valt over de brackets. Ik maak in mijn script al gebruik van -literalpath dus de functie zelf ondervindt geen hinder van de brackets in de foldernaam.
edit:
tekst verduidelijkt
tekst verduidelijkt
[ Voor 4% gewijzigd door Wimmel op 12-01-2012 12:04 ]
Men are from Mars, women are meteors crashing into Mars.
Discogs