PDA

Visualizza la versione completa : [DOS] Nome di un file con parentesi in un comando FOR


23Andrea
26-01-2014, 14:54
Salve.
Ho questo comando:


FOR /f "usebackq tokens=1-20 delims= " %%D IN (`"CERTUTIL -hashfile C:\Users\Public\Downloads\%nome_file% | findstr /v Hash | findstr /v CertUtil"`) DO (
@ECHO %%D%%E%%F%%G%%H%%I%%J%%K%%L%%M%%N%%O%%P%%Q%%R%%S%% T%%U%%V%%W>> C:\Users\Public\Downloads\%data%_%id%_Download.txt
)

che funziona perfettamente (per eliminare gli spazi dalla stringa dell'hash SHA1) finchè la variabile %nome_file% non contiene parentesi (tonde). In questo caso il comando FOR interpreta la parentesi chiusa come chiusura del "gruppo", e tutta la sintassi va a farsi benedire.
Qualche idea?
Grazie in anticipo.

MItaly
26-01-2014, 15:19
Non credo batch fornisca alcunché di integrato per l'escaping dei caratteri problematici, il mio consiglio è, oltre una certa complessità, di abbandonare il batch e passare ad un linguaggio di scripting "vero".

Loading