Mijn huidige bat scriptje wil ik overzetten naar Powershell, maar hierbij loop ik tegen één probleempje aan.
Situatie: In de map c:\backup\ staan een aantal mappen die beginnen met 'test-'<naam van de map>.
Vraagstelling: Een overzicht generen van alle 'test' mappen op basis van 'last write time'. Dus nieuwste bestand staat bovenaan en oudste bestand staat onderaan.
In mijn oude batch file had ik dit opgelost met:
Voor Powershell had ik het volgende in gedachten:
De output van Powershell valt mij tegen, er staan onnodige enters in, namelijk in de eerste en in de laatste 2 regels en achter ieder gevonden resultaat, staan enorm veel spaties.
De overbodige enters heb ik weg weten te filteren met:
Resultaat wat in overzicht2.txt staat:
Alleen blijven de spaties nog over. Ik heb werkelijk geen idee hoe ik deze spaties weg krijg achter de gevonden mappen. Belangrijk detail: Achter 'Office Genuine Advantage' staat geen spatie, waarschijnlijk omdat dit de langste naam heeft.
Wat ik al geprobeerd heb:
- Google: Powershell, dir /b option
- Google: Out-File geraadpleegd en daarmee ook de bijbehorende 'Formats'
- in GoT gezocht op Powershell + dir /b
- Opdracht regel iets ingekort om te testen, maar ook daar staan er onnodige enters en een hoop spaties in.
Jammer dat de optie dir /b niet meer in powershell bestaat. Iemand die mij een steuntje in de rug kan geven hierover?
Situatie: In de map c:\backup\ staan een aantal mappen die beginnen met 'test-'<naam van de map>.
Vraagstelling: Een overzicht generen van alle 'test' mappen op basis van 'last write time'. Dus nieuwste bestand staat bovenaan en oudste bestand staat onderaan.
In mijn oude batch file had ik dit opgelost met:
code:
1
| dir /b /a:d-s /O:GD c:\backup\ | find "test" >c:\backup\overzicht.txt |
Voor Powershell had ik het volgende in gedachten:
code:
1
| dir c:\backup\* -filter "test*" | ?{($_.PSIsContainer)} | sort -property lastwritetime | Format-Table Name -HideTableHeaders -AutoSize >c:\backup\overzicht.txt |
De output van Powershell valt mij tegen, er staan onnodige enters in, namelijk in de eerste en in de laatste 2 regels en achter ieder gevonden resultaat, staan enorm veel spaties.
code:
1
| cat c:\backup\overzicht.txt | where {$_ -notmatch "^$" } > c:\backup\overzicht2.txt |
Resultaat wat in overzicht2.txt staat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| test-Contacts test-Desktop test-Documents test-Downloads test-Favorites test-Links test-Music test-Office Genuine Advantage test-Pictures test-Saved Games test-Searches test-temp test-Tracing test-Videos |
Alleen blijven de spaties nog over. Ik heb werkelijk geen idee hoe ik deze spaties weg krijg achter de gevonden mappen. Belangrijk detail: Achter 'Office Genuine Advantage' staat geen spatie, waarschijnlijk omdat dit de langste naam heeft.
Wat ik al geprobeerd heb:
- Google: Powershell, dir /b option
- Google: Out-File geraadpleegd en daarmee ook de bijbehorende 'Formats'
- in GoT gezocht op Powershell + dir /b
- Opdracht regel iets ingekort om te testen, maar ook daar staan er onnodige enters en een hoop spaties in.
code:
1
| dir | format-table Name -hideTableHeaders -AutoSize >test.txt |
Jammer dat de optie dir /b niet meer in powershell bestaat. Iemand die mij een steuntje in de rug kan geven hierover?
[ Voor 4% gewijzigd door SparTi op 13-02-2011 00:19 . Reden: typo's ]