Fájlok, mappák átnevezése

Az átnevezés elég magától értetődő. Korábban láttuk, hogy akár másolás során is át tudjuk nevezni a fájlokat, mappákat, de természetesen anélkül is megy ez a Rename-Item  cmdlettel:

PS C:\> Rename-Item -Path 'C:\PSKönyv\Normál fájl.txt' -NewName "Új név.txt"

Itt sincs alaphelyzetben semmi kimenet, de a –PassThru kapcsolóval bekapcsolható:

PS C:\> Rename-Item -Path 'C:\PSKönyv\Új név.txt' -NewName "Mégújabb.txt" -Pass

Thru

 

 

    Directory: C:\PSKönyv

 

 

Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---       2014.06.30.     20:49          0 Mégújabb.txt

Érdekes lehetőség, hogy ha a csővezetékből tápláljuk be a Rename-Item-et, akkor –NewName paraméternek szabályt is adhatunk:

PS C:\> Get-Item -Path 'C:\PSKönyv\Archivált fájl.txt' | Rename-Item -NewName {

$_.basename + (get-date $_.lastwritetime -Format yyyyMMdd) + $_.extension} -Pas

sThru

 

 

    Directory: C:\PSKönyv

 

 

Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---       2014.06.30.     20:50          0 Archivált fájl20140630.txt

Megjegyzés

Érdekes és szerintem egyedi a –NewName ilyen jellegű működése. A help alapján sztringet kellene csak elfogadnia ennek a paraméternek, de itt szkriptblokkot adunk neki és nem panaszkodik. Ha ugyanezt próbálnánk az Add-Member-rel eljátszani, az nem menne:

PS C:\> New-Object -TypeName psobject -Property @{a="A"; b="B"} | Add-Member -M

emberType NoteProperty -Name c -Value {$_.a + $_.b} -PassThru

 

a                          b                         c

-                          -                         -

A                          B                         $_.a + $_.b

Amint látható, a –Value paraméternek hiába adtam egy szkriptblokkot, azt az Add-Member szöveggé konvertálta.



Word To HTML Converter