Powershell-ben hogy lehet az alábbiakat megcsinálni?
Ez most a script.
PS E:\teszt> Get-ChildItem e:\elohivasra -recurse | Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt '2013.05.
01' } | copy-item -destination 'e:\tmp\1\' -force
1, Hiába van ott a -force nem hozza létre az 1-es alkönyvtárat a tmp-ben. Mit kell tennem,hogy létrehozza?
2, A copy-item-ben hogy tudok az eredmény objektumokra hivatkozni?
Így jó lenne? : copy-item -destination e:\tmp\$_.LastWriteTime\
Sajnos a Copy-Item vmdlet bután működik.
A rekurzív mappalétrehozást csak akkor csinálja, amikor mind a forrás, mind a cél egy mappa. Ha az adott objektum viszont egy fájl, akkor elvárja, hogy a path létre legyen hozva, hogy neki csak bele kelljen írnia a célfájlt.
Viszont át tudod verni! A megoldás az, hogy amikor beadod a Copy-Itemnek a destination infót, ne egy stringet adj neki, hanem hajtass végre vele egy New-Item parancsot, ami létrehozza a mappát és egy ideiglenes fájlt, amit majd felülírunk. A New-Item visszatérési objektumát a Copy-Item tudja értelmezni, és a kívánt fájlt a célhelyre:
Copy-Item -destination (new-item -type file -path ("E:\tmp\1\" + $_) -force) -force
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!