將檔案轉移到一個資料夾內bat

莫小龙發表於2024-07-01

將檔案轉移到一個資料夾內bat

1.將本目錄下的資料夾中的檔案全部移動到本目錄下 mergeFolders.bat

@echo off
for /d %%i in (*) do (
  pushd "%%i"
  move *.* ..
  popd
)

  

2.將本目錄下的資料夾中的檔案全部移動到本目錄下,包括資料夾中的子資料夾中的內容

@echo off
setlocal enabledelayedexpansion

for /r %%f in (*) do (
if "%%~dpf" neq "%cd%" (
move "%%f" "%cd%"
)
)

endlocal

3.bat將資料夾中重名的檔案,移動的到當前目錄下面,不會覆蓋,會對相同的檔案的名字前面新增序號

@echo off
setlocal enabledelayedexpansion

rem 獲取當前目錄路徑
set "current_folder=%CD%"
set "counter=1"

rem 遍歷當前目錄中的子資料夾
for /d %%i in ("%current_folder%\*") do (
  rem 獲取子資料夾中的所有檔案
  for %%j in ("%%i\*") do (
    rem 構建目標檔名(在原始檔名前面加上遞增的編號並保留原檔名及其字尾名)
    set "target_filename=!current_folder!\!counter!.%%~nxj"
     
    rem 移動檔案
    move "%%j" "!target_filename!"
     
    rem 遞增計數器
    set /a "counter+=1"
  )
)

相關文章