Pagina 1 di 2

modifica di un txt tramite batch

MessaggioInviato: gio giu 04, 2009 4:41 pm
da riosilente
salve gente
ho un problema dovuto alla mia inesperienza con la programmazione

dovrei aggiungere del testo all'interno di un determinato file txt lanciando un file batch

esempio di testo

Codice: Seleziona tutto
[Data]
AutomaticUpdates="Yes"
Autopartition=0
MsDosInitiated=0
UnattendedInstall="Yes"

[Unattended]
UnattendMode=DefaultHide
UnattendSwitch="No"
OemPreinstall="Yes"
OemSkipEula="Yes"
FileSystem=*
WaitForReboot="No"
NoWaitAfterTextMode=1
NoWaitAfterGUIMode=1
DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore

[SystemRestore]

[GuiUnattended]
AdminPassword=*
TimeZone=110
OEMSkipRegional=1
OemSkipWelcome=1

[Components]

[UserData]
ProductKey="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
ComputerName=*
FullName="x"
OrgName="x"

[RegionalSettings]
LanguageGroup=1
Language= "0410"

[Networking]
InstallDefaultComponents="Yes"

[Identification]
JoinWorkgroup="MSHOME"



mentre io devo modificare il file affinchè alla fine mi aggiunga due righe alla fine e diventi così

Codice: Seleziona tutto
[Data]
AutomaticUpdates="Yes"
Autopartition=0
MsDosInitiated=0
UnattendedInstall="Yes"

[Unattended]
UnattendMode=DefaultHide
UnattendSwitch="No"
OemPreinstall="Yes"
OemSkipEula="Yes"
FileSystem=*
WaitForReboot="No"
NoWaitAfterTextMode=1
NoWaitAfterGUIMode=1
DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore

[SystemRestore]

[GuiUnattended]
AdminPassword=*
TimeZone=110
OEMSkipRegional=1
OemSkipWelcome=1

[Components]

[UserData]
ProductKey="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
ComputerName=*
FullName="x"
OrgName="x"

[RegionalSettings]
LanguageGroup=1
Language= "0410"

[Networking]
InstallDefaultComponents="Yes"

[Identification]
JoinWorkgroup="MSHOME"

[Shell]
CustomDefaultThemeFile = "%WinDir%\Resources\Themes\MyTheme.theme"


datemi qualche speranza [:)]

Re: modifica di un txt tramite batch

MessaggioInviato: gio giu 04, 2009 4:58 pm
da Pacopas
con il classico echo >> non funziona

non ho provato... esempio

Codice: Seleziona tutto
echo [Shell] >> "percorso\NOMEFILE.txt"
echo CustomDefaultThemeFile = "%WinDir%\Resources\Themes\MyTheme.theme" >> "percorso\NOMEFILE.txt"

Re: modifica di un txt tramite batch

MessaggioInviato: gio giu 04, 2009 5:25 pm
da crazy.cat
Prova a fare il secondo file solo con queste due righe
[Shell]
CustomDefaultThemeFile = "%WinDir%\Resources\Themes\MyTheme.theme"

E poi dalla cartella dove si trovano i file digita il comando
copy nomefile1+nomefile filedestinazione (ovviamente con le loro estensioni)

Re: modifica di un txt tramite batch

MessaggioInviato: ven giu 05, 2009 3:03 pm
da riosilente
ho risolto con

Codice: Seleziona tutto
echo. >> WINNT.SIF
echo [Shell] >> WINNT.SIF
echo CustomDefaultThemeFile = "%WinDir%\Resources\Themes\MyTheme.theme" >> WINNT.SIF
[:)]

ora vorrei sapere se è possibile cambiare delle righe all'interno dello stesso file

per esempio

Codice: Seleziona tutto
[UserData]
ProductKey="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
ComputerName=*
FullName="x"
OrgName="x


farlo diventare

Codice: Seleziona tutto
[UserData]
ProductKey="yyyyyyyyyyyyyyyyyyyyyyyyyy"
ComputerName=h725
FullName="y"
OrgName="y


grazie mille per le risposte!!! [:)]

Re: modifica di un txt tramite batch

MessaggioInviato: ven giu 05, 2009 3:10 pm
da Pacopas
ho risolto con

quindi funziona... buono a sapersi...

questo è molto più complicato, non bastano poche righe di codice senve un discreto e elaborato script, devi cercare all'interno del file il testo da modificare acquisire la stringa modificarla e rinviarla... insomma è più complicato ... ci vuole un discreto lavoro tramite batch.. non so se è fattibile facilmente [acc2]

Re: modifica di un txt tramite batch

MessaggioInviato: sab giu 06, 2009 8:31 am
da riosilente
potresti indicarmi la direzione?

Re: modifica di un txt tramite batch

MessaggioInviato: sab giu 06, 2009 2:21 pm
da Pacopas
guarda penso che qui ci vuole la "magia" dei programmatori... [:D]

essendo il batch sostanzialmente un linguaggio poco avanzato devi studiare un po' i suoi comandi e farti venire un'idea

ti posso dire, su cosa a occhio mi concentrerei io.

proverei a inventarmi qualcosa con il comando find che è la funzione che trova stringhe in file di testo, poi come immagazzinare questa informazione mutarla e restituirla per sostituirla (scusa il gioco di parole) al file originale dovresti inventarti qualcosa.

ti posso assicurare che ci vorrà del lavoro e che forse , anzi certamente, con altri linguaggi basterebbero poche righe..

poi onestamente io non sono un programmatore... [std] mi spiace non poterti dare maggiori idee

Re: modifica di un txt tramite batch

MessaggioInviato: dom giu 07, 2009 1:58 pm
da Mikleman
il codice dovrebbe essere
@echo off
del *.txt
echo >> foglio.txt
echo testo da aggiungere >> foglio.txt


Il problema è che il testo ha degli accapo e non so come bypassarli :(
Chiederò in giro :\

Re: modifica di un txt tramite batch

MessaggioInviato: dom giu 07, 2009 2:13 pm
da Pacopas
mikle sembra che ce l'ho con te, ma credimi non è così [^] ma finché si scherza si scherza, ma le risposte ad un problema sono cose "serie" [;)]

il bat da te scritto non mi sembra faccia ciò che si richiede, cioè sostituire una stringa di testo in un file txt.

forse ne sai più di me e potrei cadere in errore non comprendendo dove vuoi arrivare quindi ti invito a correggermi se sbaglio.

Codice: Seleziona tutto
@echo off

ok disattivi i messaggi a schermo
Codice: Seleziona tutto
del *.txt

cancelli tutti i file txt ??? e poi da dove i parametri...
Codice: Seleziona tutto
echo >> foglio.txt

questo crea o modifica un file di testo con la risposta, o meglio aggiunge al file "foglio.txt" il risultato della richiesta dello stato di echo. in pratica ti scrive "ECHO attivo."
Codice: Seleziona tutto
echo testo da aggiungere >> foglio.txt

poi gli invii a seguire il testo da aggiungere...

credo di non aver capito, puoi essere più preciso.

Re: modifica di un txt tramite batch

MessaggioInviato: dom giu 07, 2009 9:31 pm
da Mikleman
Scusa dovevo dare più info hai ragione... [acc2] [acc2] [acc2]
Il del *.txt e per cancellare il vecchio txt
poi quello ne ricrea uno nuovo
ed il terzo codice immette il testo modificato comevoleva lui,hai capito il mio ragionamento?
Il problema è che il testo ha degli accapo e non so come saltare questa cosa.

Sto chiedendo su qualche forum però mi hanno dato un codice che permette la modifica del file txt ma non salta gli accapo :(

Re: modifica di un txt tramite batch

MessaggioInviato: dom giu 07, 2009 10:02 pm
da Pacopas
Il del *.txt e per cancellare il vecchio txt

Mikle abbi pazienza; il del per cancellare il vecchio txt?!... ma lui non vuole cancellare il vecchio, ci sono altri dati...
poi senza parametri ... se uno vuole aiuto devi essere preciso... metti lo applicava e gli cancellavi i txt.
poi quello ne ricrea uno nuovo

ma quel codice non ne ricrea uno, ma anche se fosse non lo ricrea con i dati che lui vuole, se li deve ricreare a mano tanto valo che apre il txt e fa copia e incolla o lo edita a mano.
ed il terzo codice immette il testo modificato comevoleva lui,hai capito il mio ragionamento?

ho capito poco, ma quello che ho compreso e che è un approccio molto contorto IMHO e che non fa quello che serve.
Il problema è che il testo ha degli accapo e non so come saltare questa cosa.

questo è il problema minore, potremmo trovare soluzione a questo SE risolto questo, funzionasse il tutto.
Sto chiedendo su qualche forum però mi hanno dato un codice che permette la modifica del file txt ma non salta gli accapo :(


questa è bella!! è molto da web 2.0 new generation. e Yahoo Answer all'italiana [:D] [:D] [:D]
il concetto di forum è: se uno sa la soluzione posta, e da una mano. se la deve chiedere ad un altro forum tanto vale che indirizza l'utente all'altro forum.

non so che dire [acc2]

Mikleman ha scritto:Scusa dovevo dare più info hai ragione... [acc2] [acc2] [acc2]

a questo punto non lo so se avevo ragione [fischio]

Re: modifica di un txt tramite batch

MessaggioInviato: lun giu 08, 2009 10:11 am
da M@ttia
Oddio... [rotolo]

Re: modifica di un txt tramite batch

MessaggioInviato: mar giu 09, 2009 10:55 am
da riosilente
@MIKLEMAN
ho già scritto come ho risolto per il discorso degli "a capo" quando ho scritto come ho risolto qualche post più sopra

per il resto grazie a tutti per il contributo ma non sono ancora riuscito a trovare una soluzione [;)]

in effetti è ver... credo che con il comando find... if... forse potrei risolvere... ma magari dovrei impostare delle variabili e dovrei studiarmi bene questi comandi prima [uhm]

a meno che nel frattempo non abbiate trovato una soluzione [:D]

Re: modifica di un txt tramite batch

MessaggioInviato: mar giu 09, 2009 2:01 pm
da Pacopas
ciao, pensavo fossi sparito.

senti io una soluzione da proporti la ho, ma non è una vera soluzione cioè non è ottimale. mi spiegherò meglio con un esempio valuta tu se è il caso di applicarla nel tuo caso.

poniamo che io ho un file chiamato (con percorso) c:\week.txt contenente
DOMENICA=SUNDAY
LUNEDI=MONDAY
MARTEDI=TUESDAY
MERCOLEDI=WEDNESDAY
GIOVEDI=THURSDAY
VENERDI=VENERDAY
SABATO=SATURDAY


ovviamente venerdi è scritto in maniera errata in inglese a posta (i nomi italiani non presentano gli accenti per semplicità)

ora applico

Codice: Seleziona tutto
TYPE c:\week.txt | FIND /V /I "venerdi" > c:\temp.txt
ECHO VENERDI=FRIDAY >> c:\temp.txt
TYPE c:\temp.txt > c:\week.txt
del temp.txt


come vedi il batch funziona con un piccolo trucchetto, cioè non modifica la stringa ma la cancella e immette la corretta. però c'è il problema che la immette alla fine non nella giusta posizione, e se è un elenco ordinato di voci è un bel problema

vedi tu se va bene o se riesci a perfezionare, in ogni caso mi piacerebbe saperlo [std]

Re: modifica di un txt tramite batch

MessaggioInviato: mar giu 09, 2009 5:04 pm
da Silver Black
Ma non ti converrebbe passare a un linguaggio di programmazione vero? [...] [...] [...]

Re: modifica di un txt tramite batch

MessaggioInviato: mar giu 09, 2009 5:21 pm
da Pacopas
Silver Black ha scritto:Ma non ti converrebbe passare a un linguaggio di programmazione vero? [...] [...] [...]

bella domanda... lo facevo notare anche io che con qualunque altro linguaggio basta un comando... ma sai anche io adoro il batch [:D]

Re: modifica di un txt tramite batch

MessaggioInviato: mar giu 09, 2009 5:31 pm
da riosilente
@paco

quelle che mi stai consigliando tu mi può servire per un altro txt... non si butta via niente!!!

per il discorso di usare il linguaggio di programmazione... purtroppo non saprei ne cosa usare e nemmeno da dove cominciare...

Re: modifica di un txt tramite batch

MessaggioInviato: mar giu 09, 2009 5:39 pm
da Pacopas
quelle che mi stai consigliando tu mi può servire per un altro txt... non si butta via niente!!!

fammi sapere se risolvi comunque
purtroppo non saprei ne cosa usare e nemmeno da dove cominciare...

vai Silver ora tocca ai veri programmatori [arist]

[^]

Re: modifica di un txt tramite batch

MessaggioInviato: mar giu 09, 2009 6:25 pm
da Silver Black
riosilente ha scritto:per il discorso di usare il linguaggio di programmazione... purtroppo non saprei ne cosa usare e nemmeno da dove cominciare...


perché non usi questo tuo problemino per cominciare ad avventurarti nel meraviglioso mondo della programmazione? Scegli tu, io ti consiglio Delphi come tutti qui dentro sapranno, visto che lo reperisci anche gratuitamente in versione "Turbo Delphi Explorer (Win32)".

Re: modifica di un txt tramite batch

MessaggioInviato: mer giu 10, 2009 4:14 pm
da dararag
E io invece gli suggerirei vb.net [devil] [bleh]
PS: anche perché, detto tra noi, turbo delphi explorer è praticamente ininstallabile