Eliminar el archivo que contiene caracteres no válidos en Windows

16

Tengo algunos archivos que contienen caracteres de dos puntos en el nombre del archivo (por ejemplo, 1d67c0d23e859ed4a259749e4a720d9e: default-sink). Cuando trato de eliminarlos de la línea de comando con el comando:

c:\backup> del /F *.*

Me aparece "El sistema no puede encontrar el archivo especificado". para cada archivo Si especifico un archivo individual:

c:\backup> del /F "1d67c0d23e859ed4a259749e4a720d9e:default-sink"

Obtengo "El nombre de archivo, el nombre del directorio o la sintaxis de la etiqueta de volumen es incorrecta". Si intento usar rd en la carpeta principal, obtengo

¿Cómo puedo eliminar estos archivos?

grom
fuente
2
Estos archivos se crearon en la partición NTFS cuando inicié Linux. Supongo que tendré que usar el disco de arranque de Linux, ya que parece que a Windows no le gustan los dos puntos en los nombres de archivo en el nivel del controlador del sistema de archivos.
Grom
Relacionados: superuser.com/q/31587/320611
David Refoua

Respuestas:

22

Hay un artículo de Microsoft KB que enumera posibles formas de eliminar dichos archivos en:

http://support.microsoft.com/kb/320081

La forma en que normalmente uso es el método de API nativo:

del "\\?\c:\path\1d67c0d23e859ed4a259749e4a720d9e:default-sink"

De acuerdo a:

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

El :es un carácter reservado en NTFS, el método API nativo que mencioné anteriormente es la forma recomendada para eliminar dichos archivos.

Ausmith1
fuente
44
Esto no funciona para los dos puntos, ya que se interpreta como una secuencia de datos con nombre.
psusi
Esto funcionó para mi caso. el archivo con el que tenía el problema contenía una coma,
Maher Fattouh
Gracias, esto funcionó para mí. El archivo terminó en un punto. CA848D8F.
Mastro
1
No funciona Mi nombre de archivo contiene una barra invertida.
Pacerier
Si el nombre del archivo contiene lo :que ha pedido el OP, este método no funciona. Úselo chkdsko elimínelo de un Linux en vivo.
Sourav Ghosh
15

¿Supongo que puedes probar el nombre 8.3?

del /F 1d67c0~1

Tenga en cuenta que en las unidades NTFS puede deshabilitar explícitamente la funcionalidad 8.3, por lo que si ese es el caso, no tendrá suerte con esta opción. Para obtener el nombre del archivo dir adir /x

Solía ​​haber una herramienta gratuita llamada delinvfilepero se han ido y la han cambiado a shareware / pago

Mark Henderson
fuente
¿Cómo podría hacer esto en un volumen NTFS creado con el formatcomando con soporte para nombres 8.3 deshabilitado?
user2284570
1
@ user2284570 este método no funcionará. Cuando escribí esa respuesta, Microsoft tenía 8.3 nombres habilitados, pero en estos días está deshabilitado de forma predeterminada.
Mark Henderson
@ MarkHenderson, Mi nombre de archivo es 7:2. ¿Cómo uso el nombre 8.3 para el nombre de archivo de 7:2?
Pacerier
@Pacerier ver mi comentario anterior. Este método no funcionará en los sistemas operativos modernos. Windows XP o anterior.
Mark Henderson
13

Esto funcionó para mí:

  1. Corrió chkdsk /f
  2. PC reiniciada
  3. Luego pude seleccionar y eliminar el archivo
JohnB
fuente
4

Cierre todos los archivos, si hay alguno abierto, que se guardan en la unidad que contiene dichos archivos. Ahora, abra las propiedades de la unidad.

"Mi PC" -> "Haga clic derecho en esta unidad"> propiedades

Luego, vaya a la pestaña " Herramientas " y haga clic en " Comprobar ahora " en la etiqueta "Error de comprobación".

ingrese la descripción de la imagen aquíHaga clic aquí para ampliar la imagen

Esto desmontará su unidad y escaneará la unidad completa en busca de errores, eventualmente eliminará dichos archivos con nombres ilegales. Al finalizar, mostrará un mensaje que dice que algunos archivos fueron corregidos.

Eliminé con éxito dichos archivos de mi disco duro externo.

Atul Vaibhav
fuente
3

Tengo Subsystem for UNIX-based Applications instalado en mi PC (Windows 7). Desde el shell de Windows, puedo crear un archivo touch 1d67c0d23e859ed4a259749e4a720d9e:default-sinky luego eliminarlo conrm *:*

Joe Internet
fuente
Las utilidades compatibles con POSIX (como SFU) pueden eliminar dichos archivos.
Ausmith1
@JoeInternet: sigghh Microsoft eliminó todos los subsistemas que no son de Windows con 2012 en adelante
user2284570
... pero un subsistema Unix está de vuelta nuevamente en win 10.
user165568
1

Intente cambiar el nombre de la carpeta principal a un solo carácter (a, 1, etc.) y luego intente eliminar la carpeta principal. Si no funciona, muévase a la primera carpeta secundaria y cámbiele el nombre a un solo carácter e intente eliminar nuevamente. A menudo uso este método para archivos con caracteres no válidos (no me pregunte cómo se crean porque no lo sé) o para archivos donde la ruta excede el máximo (de nuevo, no pregunte cómo ocurre esto).

joeqwerty
fuente
1

7zip puede eliminar archivos que Windows no puede; Lo he usado en el pasado cuando trataba con nombres de archivo demasiado largos, pero nunca lo he probado en archivos con dos puntos. Normalmente se usarían para denotar ADS.

Dentrasi
fuente
Esto se debe a que 7-zip usa cygwin.
user2284570
1
No funciona para mis dos archivos. El primer archivo tiene un nombre de archivo con barra diagonal inversa y el segundo archivo tiene un nombre de archivo con dos puntos.
Pacerier
No, es porque 7-zip usa la API de Windows en lugar del shell. Tiene las mismas limitaciones que la API: cree que los dos puntos indican flujos.
user165568
7zip funcionó para mí
user1278519
1

Tengo un sistema de arranque dual, y ninguna de las respuestas anteriores funcionó para mí. Si el archivo está ubicado en un disco montado por su otro sistema operativo (Ubuntu 16.04 LTS para mí), simplemente puede eliminarlo usando su otro sistema operativo;)

Ang Black
fuente
Esto es bastante razonable cuando está en un enlace (aunque no se puede hacer en una máquina en línea). Además, no se requiere el arranque dual nativo, ya que podemos arrancar una distribución en vivo para hacer esto, como el disco instalador de Fedora o Knoppix. SIN EMBARGO, uno debe tener cuidado cuando se encuentre en un entorno como este, ya que el controlador NTFS3G que usamos para montar este sistema no respetará la mayoría de los permisos / ACL de Windows (que es exactamente por eso que es tan efectivo para deshacerse de los archivos "atascados") .
Spooler
0

¿Has intentado citar los nombres de archivo? Dar el comando exacto que estás ejecutando sería útil.

womble
fuente
Lo he agregado al comando exacto que estoy ejecutando para cuestionar.
grom
0

¿Has intentado usar un comodín? Por ejemplo, 'del 1d67c0d23e859ed4a259749e4a720d9e *. *' Podría funcionar.

Michael Kohne
fuente
Te probé comodines. No hubo suerte
Grom
1
Lo siguiente que pienso es iniciar el sistema con un cd de Linux (como cd de rescate del sistema), montar el volumen allí e intentar eliminarlo desde allí. Es posible que obtenga resultados interesantes en ese momento, ya que quién sabe lo que realmente está sucediendo en el sistema de archivos.
Michael Kohne
@MichaelKohne: Creo que usar una implementación de ruta Unix también es la solución correcta. ¿Pero por qué usar Linux? Windows se ejecuta como un subsistema NT y ya existe un subsistema POSIX / Unix NT.
user2284570
1
@ user2284570 - porque dado el hecho de que fueron creados con Linux, parece probable que el controlador NTFS de Linux permitió algo que no debería tener, que incluso el shell POSIX de Windows puede no pasar por alto el controlador del sistema de archivos. Es mucho más simple iniciar un CD de Linux en vivo, eliminar el archivo falso y reiniciar de nuevo a Windows.
Michael Kohne
@MichaelKohne: No, porque las rutas UNC ya funcionan (subsistema nativo) y con los subsistemas POSIX no hay acceso directo a flujos de datos alternativos, por lo que puede usar :archivos internos.
user2284570
0

¿Has probado dir / X para averiguar el nombre real 8.3 y luego intentaste eliminar ese nombre?

O, ¿podría ese archivo tener una secuencia de datos alternativa? Es posible que desee verlo en la herramienta en http://www.nirsoft.net/utils/alternate_data_streams.html para ver qué puede decirle (nunca he usado esa herramienta, solo apareció cuando busqué) .

Michael Kohne
fuente
0

Tenía una carpeta con una coma en el nombre. Intenté algunas de las sugerencias anteriores y no pude hacer que funcionaran.

Pude eliminar las carpetas con cygwin. Instalar esa aplicación no es para todos, pero hará el trabajo.

Rich MacDonald
fuente
0

Ninguna de las sugerencias anteriores funcionó para mí. Usé WinRar. Abra winrar y verá una lista de archivos, donde encontrará el archivo sospechoso "filename" (que fue creado por usted como "filename: some_text.txt". Cambie el nombre del archivo en Winrar y proporcione una extensión (como .txt o .Doc).

Vuelva al Explorador de Windows, verá "nombre de archivo .txt" (o documento). Bórralo de allí.

Prashant Lamba
fuente