Newsgroup: it.comp.os.win.windows7
Titolo: Cancellare via file batch nomi con caratteri speciali

Ciao NG,
 
Devo cancellare una serie di files tramite un file batch,
ciascuna linea della quale è del formato:
 
erase "nomefile"
 
(le virgolette ci sono, perché i nomi hanno spazi in
mezzo). Il comando fallisce su quei nomi che contengono
caratteri strani come la cediglia, le lettere accentate e
anche qualche altro carattere che ora su due piedi non mi
viene in mente. Ha invece successo in caso contrario.
 
Come posso risolvere?
 
graziassai e buon anno, con l'occasione
 
Apx.
 

 
vuoi dire che un nome così "pippoç.txt" crea problemi al comando dos via
batch?
 
in effetti il problema nasce dal fatto che nel batch una volta lanciato
il nome del file viene fuori così
 
"pippoþ.txt"
 
e allora il file  giustamente non viene trovato
 
se invece fai esegui cmd e metti il comando  del pippoç.txt
l'eliminazione avviene correttamente, segno che il problema nasce nel
momento in cui crei il file bat con un editor di testo
 
per creare un file batch corretto che non alteri il carattere utilizza
edit.com
 (vecchio editor di testo)
 
start esegui 
edit.com
 
 
nell'editor minimale che si apre scrivi del pippoç.txt e salva
 
in Xp questo vecchio editor a 16 bit esiste non so se windows7 c'è o
funzioni ancora
 
se non dovessi trovare tale editor in windows 7 prova così apri una
console cmd e scrivi
 
echo del pippoç.txt>delete.bat
 
si dovrebbe creare un file bat
 
 
 

 e allora il file  giustamente non viene trovato
 
In effetti la spiegazione dovrebbe essere quella corretta.
A questo punto potrebbe trattarsi di un problema di CodePage che è 
impostata sulla shell che esegue lo script.
Quindi:
1) al posto di "erase" scrivi "dir" e ridirigi l'output su un file di testo
2) prova ad utilizzare il comando chcp per cambiare la codepage corrente 
all'interno dello script fin quando non trovi quella opportuna
3) ripristina il comando "erase" ed eventualmente anche la redirezione 
su file di testo.
4) facce sape'!
-- 
Luca Amicone

 4) facce sape'!
 
devo vedere se posso adattare la spiegazione, i files son
qualche migliaio e la cosa deve essere automatizzata in
qualche modo. Ho solo la lista dei files che poi smanazzo
con un editor (che peraltro è ASCII puro, lo uso per
programmare), e redirigere il nomefile uno per uno sarebbe
duretta.
 

 e redirigere il nomefile uno per uno sarebbe duretta.
 
La redirezione sarebbe solo in fase di test. Quello che spero possa
risolvere ï¿œ il chcp in testa allo script stesso.
-- 
Luca Amicone

 Luca Amicone
 
no su xp (e probabilmente anche su windows 7) il chcp non risolve nulla, 
già provato
 
l'unica soluzione è usare 
edit.com
 (se possibile) come editor per creare 
i bat file oppure fare nella cartella in cui ci sono i file da 
cancellare un
 
dir /b /s >listafiles.txt
 
per ottenere la lista con il percorso
a questo punto cancella i nomi dei file che non vuole cancellare
 
crea un  bat con dentro
 
for /f %%a IN (lista.txt) do del %%a
 
il quale cancellerà tutti file contenuti in lista.txt
 
se vuole può anche anche dare il comando direttamente dalla console cmd 
che ha aperto per dare il comando dir
 
for /f %a IN (lista.txt) do del %a
 
 

 lista.txt
 
dopo essere impazzito diversi giorni ha funzionato 
lanciato come
amministratore e con sintassi "del /f <eccetera>".
 
grazie a tutti!
 
Apx.