for
substitui ’
(U + 2019) por '
(U + 0027)
Você pode contornar isso usando chcp para alterar a página de código UTF-8:
chcp 65001
Para demonstrar, criei o seguinte arquivo de lote test.cmd
:
@echo off
setlocal enabledelayedexpansion
echo use UTF-8 code page
chcp 65001
for /f "usebackq tokens=*" %%l in ('dir /b *.bmp') do (
echo %%l
)
echo use default code page
chcp 850
for /f "usebackq tokens=*" %%l in ('dir /b *.bmp') do (
echo %%l
)
endlocal
E o seguinte arquivo:
> dir /b *.bmp
Fond d’écran.bmp
Saída da execução de test.cmd
:
> test
use UTF-8 code page
Active code page: 65001
Fond d’écran.bmp
use default code page
Active code page: 850
Fond d'écran.bmp
Você pode ver que ’
não é substituído ao usar uma página de código UTF-8.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD
- Uma lista categorizada de comandos do Windows CMD
- chcp - Altere a Página de códigos do console ativo. A página de códigos padrão é determinada pelo Windows Locale.