將一個檔案複製成多個 Copy one file to multiple files

  • 0
又是獻醜的時候了,最近公司在修圖的時候需要從一張圖片上切割出多個小圖形,為了方便我選擇先將檔案複製成多個再逐一修圖。

當然最方便的方法就是直接複製貼上,但是當你要複製成六十幾個的時候,這個動作加上重新命名的時間會讓人看起來挺蠢的,特別是還要重複作 N 次。


這是我第一次用 for 迴圈,至少認真去看裡頭的參數。

  • %%~dpi:取得檔案所在的資料夾路徑
  • %%~ni:取得檔案名稱
  • %%~Xi:取得檔案副檔名

使用方法

  • 將程式碼貼到記事本另存成 xxx.bat,執行。
  • 將檔案拖入視窗內,會自動帶入路徑,按下 Enter
  • 輸入要複製的次數,即可。

延伸使用

  • 如果你不需要原始檔案的話,可在最後一行添加 del %filepath%
  • 在資料夾網址列輸入:「shell:sendto」,將 Batch 檔扔進資料夾內,在檔案上按右鍵選擇「傳送到」,就可以快速啟動這個檔案。

改進方法

  • 輸入數量時可以判斷數量長度,判斷與迴圈數的差別來補零,例如你輸入數量為 101 時會判斷是 3 位數,伺機補上 1 個或 2 個零。
  • 把 Batch 塞入右鍵選單當中,當你要大量複製檔案時就可以使用。


@echo off
set /p filepath="複製來源:"
set /p nu="複製數量:"
for %%i in (%filepath%) do set foldPath="%%~dpi"
for %%i in (%filepath%) do set fileName="%%~ni"
for %%i in (%filepath%) do set fileExt="%%~Xi"
echo %foldPath%
echo %fileName%
echo %fileExt%
for /l %%j in (1 1 %nu%) do (
  if %%j LSS 10 (copy %filepath% %foldPath%\%fileName%0%%j%fileExt%) else (copy %filepath% %foldPath%\%fileName%%%j%fileExt%)
)

No comments: