PDA

Visualizza la versione completa : [batch] inserire testo di più righe in un'unica variabile?


ocramma
15-06-2010, 17:32
salve a tutti
ecco il mio problema

io ho un file txt con una serie di 4 dati per riga su più righe, delimitati da virgole
interessandomi solo gli ultimi 2 dati di ciascuna riga utilizzo il comando FOR per inserirli in un altro file usando questo codice


for /F "tokens=3,4 delims=," %%i in (file1.txt) do (echo %%i %%j>>file2.txt)

così ottengo un file con 2 parole per riga, che sono quelle che mi servono

ora mi servirebbe riuscire a mettere l'intero file2 all'interno di una variabile, o in alternativa inserire ogni sua riga in una diversa variabile, in modo da poterlo inserire in mezzo ad altro testo (sia su un'unica riga che su diverse, non ha importanza, mi basta inserirlo)

Qualcuno ha una soluzione?

l'unico linguaggio con cui ho abbastanza familiarità è il batch quindi non so se si possano usare altri linguaggi per facilitare il tutto

grazie a tutti

oregon
15-06-2010, 19:53
Originariamente inviato da ocramma
l'unico linguaggio con cui ho abbastanza familiarità è il batch quindi non so se si possano usare altri linguaggi per facilitare il tutto


Sicuramente il batch non è adatto. E' invece molto semplice con qualsiasi altro linguaggio (ad esempio, il C ...)

ocramma
16-06-2010, 14:30
grazie per la risposta
penso mi guarderò lo stesso la guida del C (mi ero riproposto già da tempo di farlo)
ma per il momento ho risolto questo problema col batch :unz:

ecco il codice che ho sfornato


setlocal ENABLEDELAYEDEXPANSION

set cont=0

for /F "tokens=3,4 delims=," %%i in (pass.txt) do (set /a cont="!cont!+1"
echo %%i %%j>>!cont!.txt)


if exist "1.txt" (set /P 1=<"1.txt")
if exist "2.txt" (set /P 2=<"2.txt")
if exist "3.txt" (set /P 3=<"3.txt")
if exist "4.txt" (set /P 4=<"4.txt")
if exist "5.txt" (set /P 5=<"5.txt")
if exist "6.txt" (set /P 6=<"6.txt")

echo !1!;!2!;!3!;!4!;!5!;!6!>file2.txt

if exist "1.txt" (del "1.txt")
if exist "2.txt" (del "2.txt")
if exist "3.txt" (del "3.txt")
if exist "4.txt" (del "4.txt")
if exist "5.txt" (del "5.txt")
if exist "6.txt" (del "6.txt")

endlocal
exit



in pratica nella prima parte attivo l'espansione ritardata delle variabili

poi col FOR creo una serie di file
1.txt,2.txt,3.txt ecc.

ognuno contenente i dati di una riga del file iniziale
dopodichè inserisco ciascun file in una variabile, metto le variabili nel file finale, cancello il superflo e il gioco è fatto! :fighet:

grazie comunque per l'aiuto!

Loading