![](/img/trans.png)
[英]how to create a batch file that executes a single command on all the files in a directory
[英]How to Combine all Batch Files in one single batch file
我使用下面的所有批處理文件並且它們工作,我一個接一個地使用它們。
我應該采取什么方法將它們組合在一個批處理文件中?
Now I use one batch file with:
call "file1.bat"
call "file2.bat"
call "file3.bat"
and so on
我有一個包含數千個.mp4 文件的文件夾,all.mp4 已經分組在文件夾中。
我的批處理文件已經做了什么:開始將文件夾中的 .mp4 文件移動到主文件夾中,刪除剩余的空文件夾。 用隨機名稱重命名.mp4,這樣當我再次對它們進行分組時,文件夾的內容會有所不同。 然后將 .mp4 文件在文件夾中按 60 分組,然后在其他新文件夾中按 15 分組這些文件夾。 我需要選擇文件夾中有多少個 mp4 文件,然后有多少個帶有 .mp4 的文件夾被分組到其他文件夾中。
我在以下步驟中使用以下批處理文件:
第一步:我將.mp4 文件從文件夾移動到主文件夾並刪除剩余的空文件夾。
@echo off
set "dest="
set "source="
for /r "%source%" %%d in (*) do move "%%d" "%dest%"
FOR /F delims^= %%A IN ('DIR/AD/B/S^|SORT/R') DO RD "%%A"
第二步:我用隨機名稱重命名.mp4,這樣當我再次對它們進行分組時,文件夾的內容會有所不同。
@echo off
set "chars=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
for /f "eol=: delims=" %%F in ('dir /b /s /a-d *.mp4') do call :renameFile "%%F"
exit /b
:renameFile
setlocal enableDelayedExpansion
:retry
set "name="
for /l %%N in (1 1 8) do (
set /a I=!random!%%36
for %%I in (!I!) do set "name=!name!!chars:~%%I,1!"
)
echo if exist !name!.mp4 goto :retry
endlocal & ren %1 %name%.mp4
第三步:為了確保 .mp4 文件足夠混合,我還使用了計數重命名
@Echo off
For /f "tokens=1* delims=:" %%A in (
'Dir /B/S/ON/A-D "*.mp4" ^|findstr /N /V "^$"'
) Do Ren "%%~fB" "%%A%%~xB"
第四步:這里我將.mp4文件分組,每個文件夾60個或根據需要選擇多少個
@echo off
setlocal enabledelayedexpansion
PushD %~dp0
set "songsPeralbum=60"
set "fcount=0"
set idx=0
for /F "delims=" %%I in ('dir /a-d /o:n /b *.mp4') do (
REM echo Processing %%I
set /a idx=idx %% songsperalbum +1
if !idx! equ 1 set /a fcount+=1
md Album-!fcount! 2>nul
move "%%I" "Album-!fcount!\"
REM pause
)
第五步:這里我把所有包含.mp4文件的文件夾,分組到其他文件夾中。 在創建的文件夾中,我將添加 15 個或更多文件夾。
在這里,我需要另一個代碼來自動對找到的所有文件夾進行分組,並可以選擇 select 要分組多少個文件夾。
@Echo off
mkdir "Album-1" "Album-2" "Album-3" "Album-4" "Album-5" "Album-6" "Album-7" "Album-8" "Album-9" "Album-10" "Album-11" "Album-12" "Album-13" "Album-14" "Album-15" "Album-16" "Album-17" "Album-18" "Album-19" "Album-20" & popd
for /D %%b in ("Album-1") do move /Y "%%~fb" "Album-1\"
for /D %%b in ("Album-2") do move /Y "%%~fb" "Album-1\"
and so on
所有這 5 個批處理文件都放在一個批處理文件中,這將是很棒的,同時優化以快速工作。 因為我有數千個文件。 謝謝你
你應該使用iexpress ,它是 Windows 的一個組件,用於從一組文件中創建自解壓包。
您只需要:
-視窗
- 一個批處理文件,啟動所有要合並的批處理文件
- 要合並的批處理文件
無需安裝任何東西。
警告:使用任何“CD”命令將所有內容設置為僅在根文件夾中工作,所有內容都需要在存儲 MP4 文件的文件夾中工作
腳步:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.