Como apaguei um arquivo com caractere inválido no Windows 10

O que salvou a pátria foi um velho comando já presente no velho MS-DOS.

Adicionado a 24 de julho de 2025, por Facínora. | Acesse à descrição completa

Noutro dia, baixei um vídeo do YouTube usando o YT-DLP (com o YT-DLP-GUI) que veio com um caractere inválido no Windows 10, daqueles não permitidos no NTFS, que se mostrava impossível de deletar das maneiras usuais, mas, como acabei conseguindo, vou contar neste artigo como apaguei essa porcaria de uma vez por todas sem ter que recorrer ao Linux ou coisas ainda mais complicadas.

No caso, o arquivo continua um , e não adiantava renomear, arrastar para a lixeira, usar o prompt com permissão de administrador, PowerShell e nem abrir a pasta Desktop (onde o bagulho estava) com o 7-Zip. Só travava ou parecia que nada acontecia, no caso de arrastar o arquivo pra lixeira.

O que resolveu este perrengue foi o bom e velho chkdsk da seguinte forma:

  1. Pressionei Win + S, digitei cmd, cliquei com o botão direito em Prompt de Comando e selecionei Executar como administrador.
  2. Identifiquei a letra da unidade onde o arquivo estava (no meu caso, C:).
  3. Executei o comando: chkdsk C: /f
  4. O sistema perguntou se eu queria agendar a verificação na próxima reinicialização — confirmei.
  5. Reiniciei o PC e deixei o chkdsk trabalhar. Ao voltar, consegui apagar o arquivo normalmente, tanto no desktop quanto na lixeira.

Note que não tenho 100% de certeza de que foi exatamente isso que resolveu o problema — existe a chance de a simples reinicialização já ter destravado o sistema o suficiente pra permitir deletar o arquivo. Mas eu é que não vou baixar essa porcaria de novo pra descobrir e correr o risco de ter que passar por essa encheção de saco mais uma vez. Se acontecer com você, tenta aí e me fala.

Entenda o comando

Surgido no MS-DOS ainda na década de 80, este comando, chkdsk C: /f, verifica e corrige erros no sistema de arquivos da unidade C: (pode trocar para outro drive, se for o caso). O parâmetro /f (de “fix”) força a correção de problemas detectados. Quando o disco está em uso (como a unidade do sistema), o Windows oferece agendar a verificação para a próxima inicialização.

Mas o que causou esse bug?

Agora, como não tem muito mais o que falar, e a minha dica já foi dada, vou falar um pouco sobre assuntos relacionados para encher linguiça enriquecer esta matéria. Enfim, tudo indica que o problema começou por causa de um caractere inválido no nome do arquivo. O Windows (especialmente o NTFS, sistema de arquivos usado por padrão) não permite certos símbolos em nomes de arquivos ou pastas, como <, >, :, ", |, ?, *, / e \.

Mesmo que visualmente pareçam normais, alguns arquivos baixados — especialmente vindos de sistemas Linux, torrents, ou com nomes em japonês, chinês etc. — podem conter versões “alternativas” desses símbolos, como o dois-pontos de largura cheia (), que se parece com um : comum, mas não é.

E aí o Windows engasga feio: não abre, não deleta, não renomeia…nem sempre acusa erro — só trava.

Caracteres proibidos

Esses caracteres têm funções reservadas neste sistema operacional e não podem ser usados nem no nome de arquivos, nem no de pastas:

< (menor que)
> (maior que)
: (dois pontos)
” (aspas duplas)
| (barra vertical ou pipe)
? (interrogação)
* (asterisco)
\ (barra invertida)
/ (barra normal)

Caracteres problemáticos adicionais

Embora não sejam tecnicamente “inválidos”, esses podem causar problemas:

  • Caractere Unicode de largura total (ex: U+FF1A, que parece : mas é diferente — exatamente o que aconteceu no meu caso).
  • Espaços no fim do nome (arquivo.txt ) ou ponto final (arquivo.).
  • Caracteres de controle ASCII (0–31) como \x00, \x07, \x1F etc.
  • Caractere BOM (U+FEFF) no início invisível do nome.

Nomes reservados proibidos (mesmo sem extensão)

Estes nomes não podem ser usados mesmo com extensão (.txt, .mp4, etc):

CON
PRN
AUX
NUL
COM1 → COM9
LPT1 → LPT9

Exemplo: con.mp4 não funciona. Nem com1.txt.

PowerShell para identificar problemas

Diz-se que este comando no PowerShell lista arquivos com caracteres estranhos:

Get-ChildItem | Where-Object { $_.Name -match "[^\u0000-\u007F]" }

Não testei, pois o chkdsk acabou resolvendo antes, mas, me recomendaram este comando para mostrar arquivos que têm caracteres fora do ASCII padrão (Unicode invisível, acentos malformados e tal).


É isso aí.

Pelo menos este problema está resolvido.

Espero que te ajude também. Aliás, se tiver algo errado nesta publicação ou que mereça ser complementado ou expandido, com mais explicações e tal, não hesite em me corrigir nos comentários, beleza?

Abraços!

Mais informações e soluções de problemas

Visão geral

Subscribe
Notify of
guest
0 Comentários
oldest
newest most voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x