Ho migliaia di file i cui nomi di file contengono il simbolo "caret", ma quando provo ad assegnarli a una variabile, ottengo risultati strani. Se il nome file è "01 ^ Driver"s Seat.flac,"
ad esempio, il comando echo %1
ritorna "(path) 1 ^^ Driver"s Seat.flac,"
con un cursore aggiuntivo e l'elaborazione di arresti. Come posso ottenere l'output corretto?
risposte:
1 per risposta № 1Il raddoppio dei punti di inserimento è un problema di CALL
comando (vedi: Come funziona il parser batch).
Questo può essere evitato usando la chiamata di una funzione con variabili per riferimento anziché variabili per valore.
call: func "% variabileNome%" - per valore
call: func variabileName - per riferimento
call :func filename
...
:func
setlocal EnableDelayedExpansion
set "filename=!%1!"
echo filename: !filename!