Ciao Davide,
mi sono un po' perso lungo la spiegazione, però deve essere a causa dell'ora tarda. :)
Mi pare di capire, però, che il problema ricorrente sia la selezione di un valore recuperato con Select-Object.
Lo risolviamo con la creazione delle cartelle, l'altro caso è molto simile.
Il tuo script originale:
Import-Csv C:\temp\prova.csv | Select-Object "NomeCartella" |
ForEach-Object { md ("C:\temp\$_") }
Non espande correttamente "NomeCartella"; per espandere correttamente questo valore, creato come Hashtable da Select-Object, devi utilizzare un'espressione all'interno della stringa fornita a md.
Ecco lo script rivisto con la correzione applicata:
Import-Csv C:\temp\prova.csv | Select-Object "NomeCartella" |
ForEach-Object { md ("C:\temp\$($_.NomeCartella)") }
Spero di aver risolto il tuo problema.
Ciao!