Ciao.
Ricordo da precedenti thread che hai già usato la powershell.
Allora, scarica powershell analyzer da qui
http://shelltools.wik.is/Downloads
Scompattala e lancia l'eseguibile PowerShellAnalyzer.exe
Il programma è standalone.
A questo punto nell'editor incolla il codice che ti ho scritto. Devi solo modificare il percorso della variabile $path. All'interno della cartella te ne verrà creata un'altra di nome nuovi con tutti i tuoi file.
Il fine settimana è salvo.![]()
codice:# Imposto il path della cartella contenente i file originali $path = "C:\Documents and Settings\Nicola\Desktop\txtfile" # .. e la raggiungo tramite set-location set-Location $path # recupero l'elenco di tali file $filesorig = Get-ChildItem $path # all'interno della cartella ne creo una nuova di nome nuovi in cui inserirò i file che creerò new-Item -type directory -name nuovi # recupero l'elenco dei file (escludendo la cartella appena creata) # di ciascuno ricavo la prima riga tramite gc[0], ordino tali righe, ricavo solo quelle uniche # e creo tanti file quante sono le prime righe univoche dando loro il nome di tale riga e l'estensione .txt gci | ? {-not $_.psiscontainer} | % { (gc $_)[0] } | Sort-Object | Get-Unique | % {new-Item -path ($path+"\nuovi\") -type file -name ($_+".txt") } # ricavo l'elenco dei file appena creati $filesdest = Get-ChildItem ($path+"\nuovi") # ciclo i file di origine, i file di destinazione vuoti appena creati # e quando la prima riga del file di origine coincide col nome privo di estensione del file creato gli accodo il contenuto del file di origine foreach($fileorig in $filesorig) { foreach($filedest in $filesdest) { if ( (gc $fileorig)[0] -eq [IO.Path]::GetFileNameWithoutExtension($filedest.name) ) { foreach($riga in gc $fileorig) { add-content -path ($path+"\nuovi\"+$filedest.name) -value $riga } } } }


Rispondi quotando