PDA

View Full Version : powershell batch replace di un testo su tanti csv


vittorio130881
12-11-2020, 16:49
ciao a tutti
sto cercando di usare powershell in un file bat per fare una semplice cosa:

powershell -Command "(gc file1.csv) -replace ',', '.' | Out-File -encoding ASCII file1.csv"

ovvero prendere il file1 csv sostituire al suo interno le virgole con il punto e sovrascriverlo. funziona. ma vorrei fare l'operazione per tutti i file dentro la cartella.
come se scrivessi

powershell -Command "(gc *.csv) -replace ',', '.' | Out-File -encoding ASCII *.csv"

comando che dice non fattibile perchè si può fare solo su un file....
grazie di ogni consiglio

wingman87
12-11-2020, 18:37
powershell -Command "get-childitem . -Filter \"*.csv\" | ForEach-Object { (gc $_) -replace ',', '.' | Out-File -encoding ASCII $_ }"
con
get-childitem . -Filter "*.csv"
estrai tutti i file csv dalla cartella corrente (il punto è la cartella corrente).
Poi con il pipe passi i risultati a ForEach-Object che per ogni risultato esegue il tuo comando dove $_ corrisponde al singolo file

vittorio130881
12-11-2020, 18:48
powershell -Command "get-childitem . -Filter \"*.csv\" | ForEach-Object { (gc $_) -replace ',', '.' | Out-File -encoding ASCII $_ }"

con

get-childitem . -Filter "*.csv"

estrai tutti i file csv dalla cartella corrente (il punto è la cartella corrente).

Poi con il pipe passi i risultati a ForEach-Object che per ogni risultato esegue il tuo comando dove $_ corrisponde al singolo fileChe grande che sei.
Ma come si impara a programmare power shell? Trovo qualche guida?

Invidia sei stato perfetto

Inviato dal mio M2004J19C utilizzando Tapatalk

wingman87
14-11-2020, 10:37
Per imparare non so cosa consigliarti perché io non ho una conoscenza molto strutturata di powershell. L'ho usato negli anni per le cose più disparate, forse c'è stato un periodo 5 anni fa in cui l'ho usato in modo più intenso ma non ho mai studiato a fondo qualche guida, mi sono limitato a cercare su google "come si fa x in powershell" dove x era qualcosa che sapevo già fare in altri linguaggi.

È un linguaggio che a dire la verità non mi piace molto usare, per la sintassi secondo me troppo ambigua, i permessi di esecuzione e la gestione delle stringhe che ancora adesso non mi è chiara e non ho mai avuto tempo e voglia di approfondire.

A favore c'è da dire che è un linguaggio molto versatile perché puoi usare la libreria .NET e puoi scrivere programmi abbastanza complessi senza dover compilare nulla.

vittorio130881
14-11-2020, 11:06
Per imparare non so cosa consigliarti perché io non ho una conoscenza molto strutturata di powershell. L'ho usato negli anni per le cose più disparate, forse c'è stato un periodo 5 anni fa in cui l'ho usato in modo più intenso ma non ho mai studiato a fondo qualche guida, mi sono limitato a cercare su google "come si fa x in powershell" dove x era qualcosa che sapevo già fare in altri linguaggi.



È un linguaggio che a dire la verità non mi piace molto usare, per la sintassi secondo me troppo ambigua, i permessi di esecuzione e la gestione delle stringhe che ancora adesso non mi è chiara e non ho mai avuto tempo e voglia di approfondire.



A favore c'è da dire che è un linguaggio molto versatile perché puoi usare la libreria .NET e puoi scrivere programmi abbastanza complessi senza dover compilare nulla.Grazie mille. Sei stato gentilissimo

Inviato dal mio M2004J19C utilizzando Tapatalk