我尝试随机选择100首歌曲复制到我的mp3播放器中,所以我每天早晨都有新的东西要听,而不必自己拖放随机文件(我无法一次将整个音乐库放到播放器上) 。
我正在使用蝙蝠脚本来执行此操作,但是遇到了一些障碍。我下面使用的一个有效,但是将所有文件复制到一个随机文件夹中,而不是从一个随机文件夹中复制一个随机文件,然后再继续操作下一个。
我是一个完全的新手,因此所有内容都可以从此处的其他解决方案中选出并合并在一起。
echo off
:randomstart
setlocal EnableDelayedExpansion
rem Enter into the directory that contain the folders
pushd D:\test1\
rem Create an array with all folders
set i=0
for /D %%a in (*) do (
set /A i+=1
set folder[!i!]=%%a
)
rem Randomly select one folder
set /A index=(%random%*i)/32768 + 1
rem Copy the desired file
copy "!folder[%index%]!\" "D:\output2\" /Y
rem And return to original directory
popd
ping -n 2 localhost >nul
goto:randomstart
我也尝试过添加一个for循环,其计数范围从1到100,但是我丝毫无法回避。有没有人可以拯救这个白痴?
我尝试在服务器故障时询问此问题,并被告知这将是一个更好的地方。
尝试以下操作(设置文件夹名称和要复制的文件数):
@echo off&setlocal enabledelayedexpansion
set "musicroot=test"
set "playfolder=output"
set /a filecount=20
pushd "%musicroot%"
for /r %%i in (*.mp3) do set /a files+=1& set "$!files!=%%~i"
popd
pushd "%playfolder%"
:randomloop
set /a rd=%random%%%files+1
set "mp3=!$%rd%!"
if not defined mp3 goto :randomloop
set "$%rd%="
for %%i in ("%mp3%") do if exist "%%~nxi" echo "%%~nxi" already exist in %playfolder%.& goto:randomloop
copy "%mp3%"
set /a filecount-=1
if %filecount% gtr 0 goto:randomloop
popd
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句