又是獻醜的時候了,最近公司在修圖的時候需要從一張圖片上切割出多個小圖形,為了方便我選擇先將檔案複製成多個再逐一修圖。
當然最方便的方法就是直接複製貼上,但是當你要複製成六十幾個的時候,這個動作加上重新命名的時間會讓人看起來挺蠢的,特別是還要重複作 N 次。
這是我第一次用 for 迴圈,至少認真去看裡頭的參數。
當然最方便的方法就是直接複製貼上,但是當你要複製成六十幾個的時候,這個動作加上重新命名的時間會讓人看起來挺蠢的,特別是還要重複作 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%) )
Tags
玩電腦