automatisch Dateien in Windows erstellen?

automatisch Dateien in Windows erstellen?

Ich denke, ich würde gerne ein Verzeichnis mit Text-/Fake-Dateien auf einem USB-Stick mit den genauen Namen der Dateien, die in einem Hauptverzeichnis vorhanden sind, neu generieren.

Das Hauptverzeichnis befindet sich auf einem Terabyte-Laufwerk und ist viel zu groß, um auf einen USB-Stick zu passen. Wenn ich aber den USB-Stick verwende, möchte ich, dass es zu Dateinamenkollisionen kommt, wenn ich ein Duplikat von anderen Orten herunterlade. Beispiel: Ich versuche, etwas herunterzuladen, und es wird angezeigt: „Sie haben bereits eine Datei mit dem Namen …“

Es macht mir nichts aus, dieses Skript (solange es relativ schnell ist) manuell auszuführen, wenn ich das Hauptverzeichnis mit neuen zusätzlichen Dateien aktualisiere und die resultierende Dateistruktur aus gefälschten Dateien manuell auf den USB-Stick verschiebe.

Ich habe mindestens 3 Ebenen einer Verzeichnisstruktur. Ich habe eine einfache Testverzeichnisstruktur mit txt-Dateien zusammengestellt, im Vergleich zur (meist) pdf-Realstruktur. Wenn ich Folgendes ausgebe tree /a /f . > list.txt, dann:

    Folder PATH listing for volume Windows
    Volume serial number is 00C7-D795
    C:\USERS\USER\DESKTOP\TEST
    |   list.txt
    |   script.bat
    |   script.txt
    |   
    \---Top_Lvl
        |   file-2nd-1.txt
        |   file-2nd-2.txt
        |   file-2nd-3.txt
        |   
        +---2nd_Level-1
        |       file-3rd-1.txt
        |       file-3rd-2.txt
        |       file-3rd-3.txt
        |       
        +---2nd_Level-2
        |   |   file-3rd-4.txt
        |   |   file-3rd-5.txt
        |   |   file-3rd-6.txt
        |   |   
        |   \---3rd_Level-1
        |           file-4th-1.txt
        |           file-4th-2.txt
        |           
        \---2nd_Level-3
                file-3rd-7.txt

Ich weiß nicht, wie man einen Header schreibt, damit ein PDF-Reader eine Datei mit der Erweiterung .pdf anzeigt (die aber eigentlich eine Textdatei ist) – was ein wirklich toller Bonus wäre. Und ich kann keinen Befehl finden (attrib funktioniert meines Wissens nicht), der die Größe der Datei in die Textausgabe ausgibt. Da es cool wäre, die Größe der tatsächlichen Datei durch Klicken auf die gefälschte Datei verfügbar zu haben, ohne irgendwo anders nachschlagen zu müssen.

Mögliche Teillösungen?

Ich habe das gefunden:

Windows / Erstellen Sie txt-Dateien aus Unterordnern mit darin enthaltenen Dateinamen

Aber es scheint ein Durcheinander zu verursachen und funktioniert nur auf einer Verzeichnisebene.

Und als ich es neu geschrieben/geändert habe, hat es einmal funktioniert und dann nicht mehr:

    @echo off

    for /dd %%D in (*) do (
      cd %%~nxD
      tree /a /f > ..\%%~nxD.txt
      cd ..

      echo %%~nxD > dir_info.tmp
      for /f "skip=3 delims=*" %%a in (%%~nxD.txt) do (
        echo.%%a >> dir_info.tmp
      )
      copy /y dir_info.tmp %%~nxD.pdf
      del /f /q dir_info.tmp
    )

Es würde die Ergebnisse in dem Verzeichnis ablegen, in dem es ausgeführt wird, anstatt sie auf dem Desktop abzulegen (und ich kann nicht herausfinden, wie ich sie auf einem Standarddesktop ablegen kann – im Gegensatz zur Festcodierung, wenn ich mehr als einen Computer/Account verwende, um auf das Hauptverzeichnislaufwerk zuzugreifen). Und ich bin nicht sicher, ob Sie den USB-Stick angeben können, da sich dieser wahrscheinlich ständig ändert, je nachdem, was sonst noch angeschlossen ist.

Außerdem arbeite ich sehr oft mit alten Windows-Systemen, weshalb ich nach einer Batchdatei suchte. Wenn es eine App gibt, die das kann, würde ich sie auf jeden Fall in Betracht ziehen – anstatt das Rad neu zu erfinden.


@eris hat Robocopy vorgeschlagen und es gibt etwas namens RichCopy:

https://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight

Aber diese Anwendungen würdentatsächlichDuplikate des Hauptverzeichnisses - und ich habe nicht so viel freien Speicherplatz, weder auf dem Hauptlaufwerk (und, wie bereits erwähnt: auf dem funktionierenden USB-Stick).

Anscheinend war ich nicht deutlich genug. Ich versuche, ein Schattenverzeichnis zu erstellen, das alle Dateinamen (und im Idealfall Informationen zur echten Datei, wie die Größe) einschließlich Erweiterungen enthält, aber auf minimalem Speicherplatz. Ich schätze, der tatsächliche Speicherplatzverbrauch wird ein oder drei Megabyte betragen (da jede Datei und jedes Verzeichnis ~Block verwendet), im Vergleich zu Hunderten von Gigabyte (z. B. 50-MB-Datei, 1-MB-Datei, 832-KB-Datei, 10-MB-Datei, 15-MB-Datei).


Es sieht so aus, als ob Robocopy das ist, was ich will, wenn ich die Befehlszeile richtig zum Laufen bekomme:

ROBOCOPY Top_Lvl Shadow /CREATE

Erstellt keine Unterverzeichnisse.

Antwort1

@eris hatte die richtige Idee.

Von der Befehlszeile:

robocoy *Top_Lvl* *Shadow* /create /mir

Es sieht so aus, als ob es eine Schattenverzeichnisstruktur mit Dateien der Länge Null erstellt, die das Hauptverzeichnis spiegelt. Jetzt muss nur noch herausgefunden werden, wie dies auf einem Laufwerk funktioniert. Dazu muss man einfach die Pfade für Quelle und Ziel herausfinden. Es muss jedoch mit Vorsicht verwendet werden, da es nicht automatisch einen Fehler ausgibt, bevor Dateien und Verzeichnisse überschrieben werden (meiner Meinung nach nicht optimal).

Es erfordert zwar nicht die zusätzliche Arbeit, Dateien zu erstellen, die auch Informationen bereitstellen (Größe der Originaldatei), ist für den Moment jedoch eine ausreichend gute Lösung.

verwandte Informationen