| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  20-07-2009, 19:59 | #1 | 
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | 
				
				[Batch]Sostituire un file con un altro mantenendo il nome del precedente
			 
		Ciao a tutti, ho un altro problema in un codice batch... Ecco cosa vorrei fare, ma non ci riesco: ho alcuni file in F:\ e in ogni sua sottocartella che hanno nomi diversi, ma tutti la stessa estensione(*.txt) e vorrei sostituirli con uno mio il cui nome è regolamentazione.txt, pur mantenendo il loro nome originale... ...è fattibile la cosa??? Grazie in anticipo per il vostro aiuto... | 
|   |   | 
|  21-07-2009, 09:24 | #2 | 
| Senior Member Iscritto dal: Jul 2007 
					Messaggi: 1092
				 | 
		Non sono sicuro di aver capito. In pratica tu hai un file regolamentazione.txt e vorresti che il suo contenuto rimpiazzasse quello di tutti i file txt presenti all'interno di f: e delle sue sottocartelle. E' così? Necessiti di una soluzione in batch oppure ti andrebbe bene anche uno script in powershell? | 
|   |   | 
|  21-07-2009, 10:14 | #3 | 
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | 
		Ciao,  sì, esatto è proprio quello che vorrei fare...mi servirebbe in batch perchè è solo una piccola parte del programma che vorrei fare...poi non conosco niente di pawershell (non sapevo nemmeno che esistesse finchè non me l'hai citato tu per la prima volta)...quindi se possibile usare comandi Ms-Dos... grazie per il vostro aiuto... | 
|   |   | 
|  21-07-2009, 10:53 | #4 | 
| Senior Member Iscritto dal: Jul 2007 
					Messaggi: 1092
				 | 
		Con la powershell ho fatto una prova e ho risolto rapidamente (è molto più semplice della programmazione batch) Codice: gci -recurse -filter "*.txt" | % {clear-Content -path $_.fullname -force; $contenuto =Get-Content "C:\path_file_con_cui_aggiornare_il_contenuto\miofile.txt"; add-Content $_.fullname -value $contenuto }for /f "delims=," %a in ('dir *.txt /b /s') do echo. > %a Resta da aggiornare il contenuto con quello dell'altro file.   | 
|   |   | 
|  21-07-2009, 11:01 | #5 | 
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | 
		Grazie per la soluzione, ma non ho capito alcuni passaggi: cosa significa "delims=," ??? e poi perchè hai messo ' davanti a dir e dopo /s Comunque c'è un errore: NO %a, ma %%a ... Ultima modifica di skeleton : 21-07-2009 alle 11:32. | 
|   |   | 
|  21-07-2009, 19:31 | #6 | 
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | 
		Ok, 'dir *.txt /b /s' --> problema risolto: gli ' devono essere aggiunti perrchè all'interno sono presenti comandi e non file... "delims=," --> significa dalla cartella in cui viene eseguito il file Però non ho ancora capito come sostituire "delims=," se voglio aprire il mio prog da C:\ anzichè da F:\ pur producendo i suoi "effetti" in F:\ e non in C:\ da dove apro il programma... Qualcuno può aiutarmi??? | 
|   |   | 
|  22-07-2009, 09:02 | #7 | |
| Senior Member Iscritto dal: Feb 2007 Città: Verona 
					Messaggi: 1060
				 | Quote: 
 Nel file batch scrivi prima delle altre istruzioni Codice: F: cd \ Poi puoi fare altre cd oppure lavorare da lì. Vedi il codice che ti avevo postato nell'altro 3d Lo puoi posizionare ovunque perché poi lui "si sposta" nella cartella specifica dove è stato pensato di dover lavorare. 
				__________________ | |
|   |   | 
|  22-07-2009, 10:51 | #8 | 
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | 
		Ok, grazie, funziona benissimo... Ciao | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 15:19.









 
		 
		 
		 
		









 
  
 



 
                        
                        










