windows下自動建立檔案?

windows下自動建立檔案?

我想我想在 USB 記憶棒中重新產生一個文字/假檔案目錄,並使用主目錄中存在的檔案的確切名稱。

主目錄位於一個 TB 的硬碟上,它太大了,無法容納任何 USB 隨身碟。但是,當我使用 USB 記憶棒時,當我從其他地方下載副本時,我希望會發生檔案名稱衝突。即:我嘗試下載一些東西,它會說:“您已經有一個名為...的文件”

當我用新的附加檔案更新主目錄,並手動將生成的假檔案的檔案結構移至 USB 隨身碟時,我不介意手動執行這個腳本(只要它相對較快)。

我至少有 3 層目錄結構。我將一個簡單的測試目錄結構與 txt 檔案放在一起,而不是(大部分)pdf 真實結構。當我輸出時tree /a /f . > list.txt

    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

我不知道如何編寫標題,以便 pdf 閱讀器顯示帶有 .pdf 擴展名的文件(但這實際上是一個文本文件) - 這將是一個非常好的獎勵。而且我找不到將檔案大小輸出到文字輸出的命令(據我所知,attrib 不起作用)。因為透過點擊假文件即可獲得實際文件的大小,而無需在其他地方查找任何內容,這會很酷。

潛在的部分解決方案?

我找到了這個:

Windows / 建立子資料夾的 txt 文件,其中包含文件名

但它看起來很混亂,而且只做了一層目錄。

當我重寫/修改它時,它工作了一次,然後停止工作:

    @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
    )

它會將結果轉儲到運行的目錄中,而不是將其拖放到桌面上(而且我不知道如何將其拖放到預設桌面上 - 與硬編碼它相比,如果我使用多個桌面)電腦/帳戶來存取主目錄磁碟機)。我不確定您是否可以指定 USB 記憶棒,因為它可能一直在變化,具體取決於插入的其他內容。

另外,我經常使用舊的 Windows 系統,這就是我查看批次檔的原因。如果有一個應用程式可以做到這一點,我肯定會考慮它 - 而不是重新設計輪子。


@eris 建議使用 Robocopy,並且有一個叫做 RichCopy 的東西:

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

但這些應用程式將使實際的主目錄的重複項 - 而且我在主磁碟機中(以及,如前所述:在工作 USB 記憶棒中)沒有那麼多的備用儲存空間。

看來我說得還不夠清楚;我正在嘗試創建一個影子目錄,其中包含所有文件名(以及有關真實文件的最佳信息,例如大小),包括擴展名 - 但空間最小;我猜實際空間消耗將是 1MB 或 3MB(因為每個檔案和目錄都使用 ~block),而不是 100 兆位元組(例如:50mb 檔案、1mb 檔案、832k 檔案、10mb 檔案、15mb 檔案)。


如果我能讓命令列正常工作,看起來 robocopy 就是我想要的:

ROBOCOPY Top_Lvl Shadow /CREATE

不建立子目錄。

答案1

@eris 的想法是正確的。

從命令列:

robocoy *Top_Lvl* *Shadow* /create /mir

看起來它創建了一個帶有零長度檔案的影子目錄結構來鏡像主目錄。剩下的就是弄清楚如何在驅動器上執行此操作,這應該是找出來源和目標路徑的簡單問題。但是,它確實需要謹慎使用,因為它在覆蓋檔案和目錄之前不會自動拋出錯誤(恕我直言,不是最理想的)。

它不會做額外的工作來創建還提供資訊(原始文件的大小)的文件,但目前它是一個足夠好的解決方案。

相關內容