試試這個
for /f "tokens=*" %%A in ('dir /b *.mp4') do (
md "%%~nA"
copy "%%~fA" "%%~nA\prefix_%%~nxA"
)
這將複製abc.mp4 -> abc\prefix_abc.mp4
要輸出進度
@echo off
setlocal
set _cmd='dir /b *.mp4'
set _prefix=movie_
set _progress_width=40
set _progress_char1=+
set _progress_char2=-
set _progress_char3=+
set _progress_fill=*
set _count=0
set _i=1
rem Counting files
for /f "tokens=*" %%A in (%_cmd%) do set /a "_count+=1"
call :print_scale
for /f "tokens=*" %%A in (%_cmd%) do (
md "%%~nA" >nul 2>&1
copy "%%~fA" "%%~nA\%_prefix%%%~nxA" >nul 2>&1
rem Output progress
call :progress _i _count
call title Completed [%%_i%%/%%_count%%]
set /a "_i+=1"
)
endlocal
exit /b 0
:print_scale
set /a "_width=_progress_width-2"
set "_fill="
for /l %%B in (1,1,%_width%) do call set "_fill=%%_fill%%%%_progress_char2%%"
echo %_progress_char1%%_fill%%_progress_char3%
exit /b 0
:progress
call set _current=%%%1%%
call set _total=%%%2%%
set /a "_width=_progress_width"
set /a "_pos=_width*_current/_total-_width*(_current-1)/_total"
for /l %%B in (1,1,%_pos%) do echo|set /p _z=%_progress_fill%
exit /b 0
像
+--------------------------------------+
*************
這將輸出的進步,而你想什麼不工作添加前綴?例如,我認爲在堅持使用批處理文件的情況下,您不會獲得進度條,而是使用比Windows腳本主機更高的級別。不要爲你的問題添加太多變化:一個接一個地問一個問題。 – Marged
我試圖添加Comand REN,但沒有運氣。它不一定要有「進度條」,只是關於剩餘多少MB的複製信息。但那不是強制性的。 –
沒有。該文件夾是空的。我想這是因爲命令在錯誤的地方。嘗試/ F「Tokens = *」%% i in('Dir/B * .mp4')do md「%%〜ni」| copy「%% i」「%%〜ni」DO REN%i abc%我舉例 –