Der Dateiname ist zu lang – The file name is too long

Normalerweise schreiben wir ja primär über Datenrettung.

Diesmal möchte ich eine Lösung anbieten für Datenlöschen. Viele werden das Problem kennen – man will rekursiv Dateien und Verzeichnisse löschen, jedoch ist die gesamte Länge des Verzeichnis- und Dateinamens zu lang.

Typische Fehlermeldungen:

  • Der Dateiname ist zu lang
  • The filename is too long
  • The file name(s) would be too long for the destination folder
  • The file name you specified is not valid or too long
  • The specified path, file name, or both are too long
  • The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters
  • Die Quelldateinamen sind zu lang für das Dateisystem
  • Der Verzeichnisname ist ungültig
  • Der Verzeichnisname ist zu lang

Die Fehlermeldungen treten typischerweise im Explorer oder am Command-Prompt CMD bzw. DOS-Fesnter auf.

Anbei eine Lösung, wie man Verzeichnisse sowie Dateien inklusive Unterverzeichnissen löschen kann, auch wenn zu lange Dateinamen und zu lange Verzeichnisnamen vorhanden sind.

WARNUNG!
Das Beispiel-Script bzw. die Beispiel-Batch-Datei löscht DATEN und VERZEICHNISS! Bei nicht korrekter Verwendung oder aufgrund möglicher Fehler innerhalb des Scripts ist es möglich, das Daten oder Verzeichnisse gelöscht werden, welche man nicht löschen will!

Das Script soll nur als Vorlage dienen, und auf keinen Fall ungeprüft eingesetzt werden. Der Inhalt muss vom Benutzer zu 100% verstanden werden, bevor es eingesetzt wird!

@echo off
echo.
echo WARNING! THIS PROGRAM *DELETES* FILES AND DIRECTORIES!
echo RUN ONLY IF YOU HAVE FULL BACKUP OF ALL DEVICES!
echo THIS PROGRAM MAY HAVE ERRORS LEADING TO DATA LOSS!
echo STOP NOW - DO NOT RUN :-) !
echo.
pause
echo.
echo RUN cmd AS ADMINISTRATOR ! (if not done already)
echo.
pause
echo.
echo ATTINGO TOO LONG DIRECTORY NAME TOO LONG FILE NAME RECURSIVE DEL RMDIR
echo COPYRIGHT (C) 2017 BY ATTINGO DATENRETTUNG / NICOLAS EHRSCHWENDNER
echo.
pause
echo.
echo S T O P ! ! ! DO NOT RUN ! ! ! ! ! DANGER ! ! ! ! ***P***A***N***I***C*** :-)
echo.
echo CLOSE WINDOW NOW !!!
echo.
pause
echo we are in the directory:
cd
echo.
echo WARNING! maybe we delete too much if there are symlinks, junctions, a.s.o.!!!
echo.
pause.
echo.
echo now trying to delete everything, please ignore "too long" error messages...
echo.
pause
echo.
for /d %%d in (*) do (
echo rmdir /s/q "%%d"
rmdir /s/q "%%d"
)
echo.
echo now renaming remaining directories to numbers, so we short them...
echo.
pause.
echo.
setlocal enableDelayedExpansion
set /a j=1
for /d /r %%d in (*) do (
echo ren "%%d" "!j!"
ren "%%d" "!j!"
set /a "j=!j!+1"
)
echo.
echo now retrying to delete everything... now there should be no "too long" error message...
echo.
pause
for /d %%d in (*) do (
echo rmdir /s/q "%%d"
rmdir /s/q "%%d"
)
echo.
echo done? :-)
echo.
pause

Anbei nochmals das Script in Kurzform, wie gesagt, es soll nur als Vorlage dienen und auf keinen Fall 1:1 kopiert und verwendet werden:

removeme for /d %%d in (*) do (
removeme rmdir /s/q "%%d"
removeme )
removeme setlocal enableDelayedExpansion
removeme set /a j=1
removeme for /d /r %%d in (*) do (
removeme ren "%%d" "!j!"
removeme set /a "j=!j!+1"
removeme )
removeme for /d %%d in (*) do (
removeme rmdir /s/q "%%d"
removeme )

Der große Check: Wie sicher sind die Daten Ihrer Kundschaft?

Gastbeitrag aus dem ersten „fIT“-Magazin für wissensbasierte Dienstleister der UBIT der WKO:

Fühlen sich Ihre Kundinnen und Kunden in Sachen IT und Daten nur sicher – oder sind sie es wirklich? Der Check der IT-Security Experts Group des Fachverbandes Unternehmensberatung, Buchhaltung und IT der Wirtschaftskammer Österreich hilft Ihnen, die Sensibilität Ihrer Kunden für IT und Datensicherheit zu erhöhen. Der große Check: Wie sicher sind die Daten Ihrer Kundschaft? weiterlesen