Newsgroup: it.comp.os.dos
Titolo: [HELP] eliminare a catena uno spazio nei nomi di files

Ciao a tutti,
Purtroppo non sono un esperto nella costruzione di script in batch, per
questo vi chiedo cortesemente una mano.
Avrei una necessità, quella di eliminare da circa 4.000 files la presenza,
nel nome del file, di uno spazio.
Faccio un esempio:
foto312 a.jpg  dovrebbe essere rinominato in
foto312a.jpg
Immagino occorra usare il carattere jolly "?" ma non so la sintassi.
In ogni caso esiste solamente uno spazio, non di più.
Fortunatamente non tutti i files hanno uno spazio ma passarli uno ad uno è
comunque un'operazione veramente difficoltosa, e che rischia di andare oltre
ai tempi a disposizione.
C'è un modo per mandare la procedura in batch in modo tale che questi
vengano rinominati a cascata?
grazie anticipatamente a chi mi vorrà dare questo aiuto
un saluto a tutto l'NG.
a presto,
Momo

 foto312a.jpg
Puoi usare il batch seguente (chiamiamolo NOSPACE.BAT):
--------------------------------------------------------------------
@echo off
echo if "%%3"=="" if not "%%2"=="" ren "%%1 %%2" %%1%%2>~nospace.bat
lfnfor on
set "=
for %%f in (*.*) do call ~nospace.bat %"%%%f%"%
del ~nospace.bat
--------------------------------------------------------------------
Due sole avvertenze:
- questo batch opera sui file contenuti nella directory corrente
- questo batch rinomina solo i file il cui nome contiene un unico spazio (eliminandolo), anche se è possibile modificarlo affinché funzioni anche in casi più generali.
Ciao!
Charlie / » Assistenza PC a distanza « / 
http://aiutopc.shorturl.com

 ha scritto
Puoi usare il batch seguente (chiamiamolo NOSPACE.BAT):
Due sole avvertenze:
- questo batch opera sui file contenuti nella directory corrente
- questo batch rinomina solo i file il cui nome contiene un unico spazio
(eliminandolo), anche se è possibile modificarlo affinché funzioni anche in
casi più generali.
Ciao!
...era proprio quello che stavo cercando
Grazie mille, anche se non so come,
a buon rendere
Momo

 a buon rendere
Beh, se ti capita l'occasione, puoi farmi un po' di buona pubblicità. :-)


 Charlie / » Assistenza PC a distanza « / 
http://aiutopc.shorturl.com
...questo era scontato!
^__^
ciao
Momo

 azz... peccato che non funzioni
E' una battuta, spero...
Ciao!



...ehm, purtroppo no.
Eseguo il batch nella dir in cui sono contenute le immagini da rinominare ma
semplicemente non capita nulla.
grazie comunque
il sito e la tua idea sono davvero molto belli
ciao
Momo

 semplicemente non capita nulla.
Non riesco proprio a spiegarmelo. Ho scritto questo batch per Windows 9x ma, a parte un messaggio di errore senza conseguenze pratiche, funziona anche sotto NT/2000/XP.
Se il "non capita nulla" significa che non appaiono messaggi di "operazione riuscita", è normale che sia così perché non ne ho previsti.
Se invece non viene eliminato lo spazio dai nomi dei file contenuti nella directory, posso solo pensare a un errore di trascrizione (hai fatto copia-e-incolla dal mio messaggio?) oppure di procedura: se apri una finestra DOS, ti sposti nella directory dove ci sono i file da rinominare, copi il NOSPACE.BAT in questa directory e poi lo lanci (digitando appunto NOSPACE e battendo Invio), che cosa succede?
Ciao e fai sapere!


 Non riesco proprio a spiegarmelo. [snip]
...penso di aver capito.
Non sapendo molto di batch script mi sono semplicemente immaginato che
quello da te preparato potesse andare bene per qualsiasi file che avesse uno
spazio nel nome. Invece, se non capito male (ma a questo punto la verifica
fatta mi dà ragione) il tuo funziona solo per l'esempio che ti ho proposto e
cioè per un numero di caratteri prestabilito a priori. Ovvero: funziona per
un file ??????? ?.??? e non per un file ???????????? ??.???
Mi sono spiegato?
Dicevo di aver poi verificato che con un file appunto, ad esempio ???????
?.jpg funziona benissimo, eccome! A me servirebbe qualcosa, se è possibile,
che elimini uno spazio all'interno del nome ma la cui posizione non è sempre
la stessa...
grazie comunque, anche per l'eventale risposta
^__^
ciao
Momo

 spazio nel nome.
Infatti è così. La condizione, come ti avevo precisato nella seconda delle
"avvertenze", è che lo spazio sia uno solo. Quindi, questa versione di
NOSPACE.BAT toglie lo spazio, per rifarmi ai tuoi esempi, sia dal nome del
file "1234567 8.ext", sia da quello del file "123456789012 34.ext", ma non
da quello del file "12345 6789012 34.ext" (che infatti contiene non uno
spazio ma due). La posizione dello spazio, invece, è del tutto ininfluente.
Ciao!


 Ciao!
...anche il numero di caratteri è ininfluente?
Momo

 ...anche il numero di caratteri è ininfluente?
Sì.
