Salve a tutti. Illustro rapidamente la mia perplessità. :)
Situazione: file di testo contenente una serie di percorsi e nomi di file privi di estensione.
Es.
C:\Documents and Settings\Username\desktop\cartella\file
C:\Documents and Settings\Username\desktop\cartell2\file2
C:\Documents and Settings\Username\desktop\cartella3\file3
Una mia cartella contiene una serie di file doc e pdf (file.doc,file.pdf,file2.doc,file2.pdf) e così via e devo spostarli all'interno della cartella specificata nel file di testo.
Ho provato in questo modo:
set-location "C:\mio_path\cartella"
$txt = gc elenco.txt
foreach($linea in $txt) {
$file = ([system.IO.Path]::getfilename($linea)).trim()
$folder = [system.IO.Path]::getdirectoryname($linea)
move-Item $file* -destination $folder -whatif
}
lo script non restituisce errori ma lo spostamento non avviene.
Se al posto della variabile $file provo con la stringa
move-Item "file*" -destination "C:\mio_path\mia_cartella" -whatif
powershell mi avvisa che sia il doc che il pdf verrebbero correttamente trasferiti.
Alla fine ho risolto così:
set-location "C:\mio_path\cartella"
$txt = gc elenco.txt
foreach($linea in $txt) {
$file = ([system.IO.Path]::getfilename($linea)).trim()
$folder = [system.IO.Path]::getdirectoryname($linea)
Get-ChildItem $file* | move-Item -destination $folder -whatif
}
ma mi piacerebbe capire perchè non riesco a spostare i file direttamente tramite il move-item ma sono costretto a passare per il cmdlet gci. Spero di essere stato chiaro. Grazie per l'attenzione.