Newsgroup: it.comp.os.dos
Titolo: Creare file txt da un altro file txt

"stringhe txt" contiene una lista ordinata di stringhe che
variano ad ogni esecuzione del file batch.
devo creare una serie di file txt con il nome di ciscuna stringa.
per essere pi� chiaro, ho il file Disney.txt che contiene un elenco di
stringhe tipo Paperino Pluto ecc e vorrei creare i file Paperino.txt
Pluto.txt ecc
il file "Disney txt" e' l'output di find /i "%1" file.txt
ho gi� letto di un problema simile, purtroppo non ricordo dove..ho guardato
l'help di find ma non ho trovato quello che mi serviva.
ho anche pensato a un ciclo di for ma quello che scrivo non funziona...
avrei bisogno di un suggerimento..
grazie

 Pluto.txt ecc
Avendo sed è piuttosto facile creare i file:
echo @echo off > crea.bat
cat Disney.txt | sed 's/^/copy nul /' >> crea.bat
call crea.bat
del crea.bat
verranno creati tutti file vuoti, uno per ogni riga.

 verranno creati tutti file vuoti, uno per ogni riga.
La riga con cat non funziona.
Ho copiato tutto nel file prova.bat e l'ho eseguito da riga di comando in 
una finestra dos (o presunto tale) di WinXPhome.
Il risultato � il file crea.bat che contiene solo @echo off.
un msg di sistema dice "cat" non e' riconosciuto come comando interno o 
esterno, un programma eseguibile o un file batch.
Si puo' risolvere?

 Si puo' risolvere?
Si, si, mi sono sbagliato avendolo provato su linux!
Il comando in ambiente dos è type:
echo @echo off > crea.bat
type Disney.txt | sed 's/^/copy nul /' >> crea.bat
call crea.bat
del crea.bat

 del crea.bat
Purtroppo non funziona, su sed mi da' lo stesso msg di cat....
sed non e' riconosciuto come comando interno o esterno ecc......

 e' riconosciuto come comando interno o esterno ecc......
Infatti come dicevo nella prima mia risposta avendo "sed" è piuttosto 
facile. Prova a cercare su internet "sed per dos" e scaricarlo.



In alternativa puoi utilizzare il codice che vedi qui sotto (un vecchio 
post di 5 anni fa di DøctøR_DøøM) che serve ad inserire in testa ad ogni 
riga una parola.
--cut--
@echo off 
if [%1]==[] goto help 
if [%2]==[] goto help 
if [%3]==[] goto help 
echo.%2 >parola 
echo.a 80>deb 
echo.dec cx>>deb 
echo.dec cx>>deb 
echo.>>deb 
echo.p =80 2>>deb 
echo.w>>deb 
echo.q>>deb 
debug parola <deb >nul 
del deb 
copy %1 tmp >nul 
:loop 
copy parola+tmp tmp2 >nul 
find "%2" <tmp2 >>%3 
find /V "%2" <tmp2 >tmp3 
copy tmp3 tmp >nul 
if exist tmp goto loop 
if exist tmp del tmp 
del tmp2 
del tmp3 
del parola 
goto end 
:help 
echo.Uso: %0 fileditesto.txt parola_da_aggiungere output.txt 
:end 
--cut--
Ipotizzando che il file viene salvato come dd.bat puoi fare un file batch 
in questo modo:
--cut--
@echo off
if [%1]==[] goto aiuto
if not exist %1 goto aiuto
echo.>zero
call dd %1 zero x
call dd x copy y.bat
call y
del zero
del x
del y.bat
--cut--
A questo punto salvi quest'altro file e lo esegui mettendo come primo 
parametro il nome del file. Se per esempio questo secondo file batch lo 
chiamerai puffo.bat allora farai:
puffo Disney.txt
Ciao

 Ciao
Ciao, ti ringrazio molto dell'interessamento, pi� tardi lo provo.
purtroppo ho scarsa conoscenza di batch, e di informattica in generale, ho 
provato da solo ma ad un certo punto mi fermo.
in fondo si tratta di estrarre stringhe da un txt e usarle come nomi di 
altrettanti txt oppure di cartelle.
forse dovevo titolare il post "gestione dell'output del comando find".
il semplice
find /v /i "" Disney.txt
restituisce tutte le stringhe contenute in Disney.txt, il problema e' 
appunto come farle diventare nomi di cartelle o file.txt.
ho provato con echo type md ma non ho ottenuto granche'.
di nuovo grazie per le risposte.

 Ciao, ti ringrazio molto dell'interessamento, più tardi lo provo.
prova poi mi fai sapere

 prova poi mi fai sapere
solito problema....
il dd non lo riconosce come comando....
considera che sono in ambiente WinXP 



Certo, come ti ho detto nei precedenti post devi creare tu un file 
chiamato dd.bat con all'interno il codice che ti ho messo (il primo pezzo 
di codice). A questo punto nella stessa directory dove hai creato quel 
file ne crei un altro e lo chiami come ti pare, che ne so puffo.bat, 
all'interno inserisci il codice che ti ho inserito (il secondo pezzo di 
codice). Riguardati il post precedente.
E solo dopo aver creato questi due file fai:
puffo Disney.txt
Siccome non ho provato con WinXP, non vorrei che la chiamata 
dell'istruzione "call" voglia non solo il nome del file ma anche 
l'estensione, in tal caso prova a sostituire questo codice da questo:
call dd %1 zero x
call dd x copy y.bat
a questo:
call dd.bat %1 zero x
call dd.bat x copy y.bat


EDLIN