J'essaie de renommer mes fichiers pour supprimer les caractères qui causent des problèmes dans les scripts. Cela fonctionne bien pour l'esperluette et le point d'exclamation, mais lorsque le fichier a le signe pourcentage, il n'apparaît pas dans la variable pour commencer. Comment transmettre des fichiers avec des caractères spéciaux via la boucle for?Batch: comment remplacer% sign dans une variable?
for %%v in (*) do call :validate "%%v"
exit /b
:validate
set "original=%~nx1"
set "newtitle=%original:!=%"
set "newtitle=%newtitle:&=and%"
setlocal enabledelayedexpansion
set "newtitle=!newtitle:%%= percent!"
if not "%newtitle%"=="%original%" ren %1 "%newtitle%"
Avez-vous déjà vu cette syntaxe? 'Set" Var = String "' – Compo
Oui, pourquoi? Cela n'aide pas. – bricktop
Toujours pas. Avec %% la variable résultante est vide, avec ^% elle reste inchangée. – bricktop