我是編程新手,我只需要一個簡單的腳本來從一個檔案夾中選擇隨機檔案(15 個),該檔案夾也包含多個其他檔案夾。
每次執行腳本時,下面的代碼都會復制相同的圖片,因此隨機化器不起作用。還有一種方法可以從搜索中排除一些特殊的擴展名嗎?就像我有 100 個檔案夾,其中大部分是 .png 和 .jpeg 檔案,還有一些其他擴展名。可以排除嗎?
謝謝你。
@echo off
setlocal EnableDelayedExpansion
cd "D:\temp\"
set n=0
for %%f in (*.*) do (
set /A n =1
set "file[!n!]=%%f"
)
for /L %%i in (1,1,%time:~-1%) do set "dummy=!random!"
set /A "rand=(n*%random%)/32768 1"
copy "!file[%rand%]!" "D:\temprandom\"
uj5u.com熱心網友回復:
這是一個例子:
@echo off
setlocal enabledelayedexpansion
pushd "D:\temp\" || goto :EOF
for /f "tokens=1,* delims=[]" %%i in ('dir /b /s /a-d ^| findstr /RV "[.]jpg [.]png" ^| find /v /n ""') do (
set "file%%i=%%~j"
set "cnt=%%i"
)
for /l %%c in (1,1,15) do (
set /a rand=!random! %% !cnt!
for %%r in (!rand!) do copy "!file%%r!" "D:\temprandom\"
)
popd
請注意,findstr /RV "[.]jpg [.]png"兩個for回圈中的 in 都指示要從搜索中排除的檔案擴展名。
您需要了解的是,基于dir /s命令,它可以運行很長時間,特別是如果您有很多,所以不要指望速度會成為今天的英雄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470184.html
