how to create dummy file in cmd
how to create dummy file in cmd

什麼是虛擬檔案以及為什麼需要它

虛擬檔案是您建立的精確大小佔位檔,用來測試上傳腳本、儲存配額或網路傳輸,而無需暴露真實資料。在 Windows 命令提示字元 (CMD) 中,內建的 fsutil 命令可以建立任何整數位元組大小的零填充檔案,但它只能產生空位元組——不會產生隨機資料或重複的文字樣式。如需更多控制,基於瀏覽器的虛擬檔案產生器可讓您指定精確的位元組數 (從 1 到 52,428,800) 並選擇零位元組、加密安全隨機位元組或重複的 UTF-8 文字。這兩種方法都在本機執行,因此不會有任何檔案離開您的電腦。

無論您是要驗證拒絕超過 10 MB 檔案的上傳表單、測試以 250 MB 分割封存檔案的備份腳本,還是要用 1 GB 的承載量模擬慢速網路傳輸,虛擬檔案都能為您提供可預測且可重複的測試案例。由於檔案大小是精確的,您可以驗證您的系統是否正確處理邊界條件——當真實資料遇到相同限制時不會出現意外。

在接下來的章節中,我們將介紹用於零填充檔案的原生 CMD 方法,然後逐步說明虛擬檔案產生器,用於處理安全隨機資料或重複文字樣式等更進階的用途。

在 CMD 中建立零填充的虛擬檔案

Windows CMD 包含 fsutil 命令,可以建立任何整數位元組大小 (最高 2 GB) 的零填充檔案。這是不離開命令列就能快速產生虛擬檔案的方法。

  1. 開啟命令提示字元:按下 Win + R,輸入 cmd,然後按下 Enter。
  2. 執行 fsutil 命令:
    fsutil file createnew "C:\path\to\dummy.txt" 10485760
    C:\path\to\dummy.txt 替換為您想要的檔案路徑,並將 10485760 替換為精確的位元組大小 (10,485,760 位元組 = 10 MB)。
  3. 驗證檔案大小:在檔案上按右鍵,選擇「內容」,並確認大小符合您指定的位元組數。

此方法適用於只需要特定大小檔案而不在意內容的快速測試。然而,fsutil 無法建立隨機資料或重複文字樣式——它只能用空位元組 (0x00) 填充檔案。針對這些用途,您需要使用虛擬檔案產生器工具。

使用虛擬檔案產生器產生具有自訂內容的虛擬檔案

虛擬檔案產生器可讓您建立精確位元組大小的檔案,並在三種內容類型之間選擇:零位元組、安全隨機位元組或重複的 UTF-8 文字。以下是使用方法:

  1. 在瀏覽器中開啟虛擬檔案產生器
  2. 輸入安全的檔案名稱 (例如 test-50mb.bin) 和精確的位元組大小 (例如 50 MB 為 52428800)。該工具接受從 1 到 52,428,800 位元組的大小。
  3. 選擇內容類型:
    • 零位元組:用空位元組 (0x00) 填充檔案,與 CMD 的 fsutil 輸出相同。
    • 安全隨機位元組:使用 Web Crypto API 產生加密安全隨機資料,非常適合測試加密或雜湊腳本。
    • 重複文字:可讓您指定一個 UTF-8 文字樣式 (例如 Lorem ipsum),該樣式會重複直到檔案達到精確的位元組大小。
  4. 按下產生。該工具會在您的瀏覽器中本機建立一個 Blob,並顯示摘要,顯示精確的位元組數和內容類型。
  5. 檢視摘要,然後按下下載將檔案儲存到您的裝置。

由於該工具完全在您的瀏覽器中執行,不會上傳或儲存任何資料到伺服器。這使得它適用於敏感的測試場景,例如模擬加密承載量或驗證您的系統如何處理非 ASCII 文字。

何時使用各種方法

下表比較了 CMD 方法和虛擬檔案產生器在常見用途中的差異:

用途 CMD (fsutil) 虛擬檔案產生器
快速零填充檔案 ✅ 最佳選擇 (一個命令) ✅ 可行,但大型檔案較慢
用於加密測試的隨機資料 ❌ 不可能 ✅ 透過 Web Crypto 產生安全隨機位元組
重複文字樣式 (例如記錄檔) ❌ 不可能 ✅ UTF-8 文字重複至精確大小
超過 2 GB 的檔案 ❌ 限制為 2 GB ❌ 限制為 50 MB (52,428,800 位元組)
本機產生 (無上傳) ✅ 在您的電腦上執行 ✅ 在您的瀏覽器中執行

對大多數使用者而言,虛擬檔案產生器是更靈活的選擇。它能處理隨機資料和文字樣式,這對於測試您的系統如何處理非零內容至關重要。然而,如果您只需要零填充檔案並偏好命令列,fsutil 是更快速的選擇。

虛擬檔案用途的實際範例

以下是三個真實世界的情境,虛擬檔案可幫助您在冒險使用真實資料的情況下進行測試和除錯:

1. 測試上傳限制

許多網頁表單會強制設定最大檔案大小 (例如 10 MB)。若要驗證此限制,請使用虛擬檔案產生器建立一個精確 10,485,760 位元組 (10 MB) 的虛擬檔案。將其上傳到表單並確認系統接受。然後,建立一個 10,485,761 位元組 (10 MB + 1 位元組) 的檔案,並驗證表單以正確的錯誤訊息拒絕它。

2. 模擬網路傳輸

如果您正在測試一個將大檔案分割成區塊進行傳輸的腳本,請使用隨機資料產生一個 100 MB 的虛擬檔案。使用該腳本將其分割成 10 MB 的區塊、傳輸它們並重新組裝。使用差異比對工具比較原始檔案和重新組裝的檔案,以確保沒有資料遺失或損毀。

3. 驗證儲存配額

雲端儲存服務通常會強制設定配額 (例如每位使用者 5 GB)。若要測試您的應用程式如何處理配額限制,請使用 CMD 的 fsutil 建立一個 5,242,880,000 位元組 (5 GB) 的虛擬檔案 (如果該工具有 50 MB 限制,也可以使用多個較小的檔案)。將其上傳到該服務,並驗證您的應用程式是否能妥善處理「配額超過」錯誤。

疑難排解常見問題

以下是您在建立虛擬檔案時可能遇到的問題及解決方法:

檔案大小與指定的位元組不符

如果檔案大小與您輸入的位元組數不符,請檢查以下常見原因:

  • CMD (fsutil):確保您使用的是正確的位元組數 (例如 1 MB = 1,048,576 位元組,而不是 1,000,000)。Windows 使用二進位前置詞 (KiB、MiB),而不是十進位。
  • 虛擬檔案產生器:該工具會強制執行您輸入的精確位元組大小,但由於檔案系統的額外負擔,某些作業系統可能會回報略有不同的大小。例如,1 位元組的檔案可能會因區塊配置而在磁碟上顯示為 4 KB。

隨機資料安全性不足

虛擬檔案產生器使用 Web Crypto API 來產生安全隨機位元組,適用於大多數測試情境。然而,如果您需要用於正式環境的加密安全隨機資料,請考慮在受信任的環境中產生 (例如使用 OpenSSL),然後再將其傳輸到您的測試系統。

重複文字未精確填滿檔案

使用「重複文字」選項時,該工具會透過在必要時截斷最後一個重複,確保檔案達到精確的位元組大小。例如,如果您輸入一個 10 位元組的文字樣式和 25 位元組的檔案大小,該工具會將該樣式重複兩次 (20 位元組) 並截斷最後 5 位元組以達到 25 位元組。這可確保檔案大小始終精確,即使文字樣式無法整除。

CMD 和虛擬檔案產生器的替代方案

雖然 CMD 和虛擬檔案產生器是 Windows 使用者最直接的選擇,但以下是其他平台或進階用途的幾種替代方案:

PowerShell

PowerShell 可以使用 System.IO.FileStream 類別建立虛擬檔案。例如,若要建立具有隨機資料的 50 MB 檔案:

$f = New-Object System.IO.FileStream "C:\temp\test.dat" -ArgumentList Create, ReadWrite
$f.SetLength(52428800)
$f.Close()

如果您需要在 Windows 環境中編寫檔案建立腳本,此方法非常有用。然而,與 fsutil 一樣,它只能建立零填充檔案,除非您新增額外的邏輯來寫入隨機資料。

Linux 和 macOS

在 Linux 或 macOS 上,您可以使用 dd 命令來建立零填充檔案:

dd if=/dev/zero of=dummy.txt bs=1 count=10485760

若要使用隨機資料,請改用 /dev/urandom:

dd if=/dev/urandom of=dummy.txt bs=1 count=10485760

這些命令功能強大,但需要熟悉終端機語法。對於偏好圖形化介面的使用者,虛擬檔案產生器提供了更友善的替代方案。

程式語言

如果您正在編寫腳本或應用程式,大多數程式語言都包含用於檔案建立的程式庫。例如,在 Python 中:

with open("dummy.txt", "wb") as f:
    f.write(b"\0" * 10485760)  # 零填充
    # 或
    f.write(os.urandom(10485760))  # 隨機資料

此方法非常適合自動化測試,但需要編寫和維護程式碼。對於一次性任務,虛擬檔案產生器是一種無需編寫程式碼的替代方案。

相關指南:如何檢查您的 JSON 格式是否正確

如果您在權衡各種選項,如何在 CSS 中建立 Flexbox:實務逐步指南詳細介紹了相關內容。