2013-02-24 3 views
1

Im пытается изменить к случайному подкаталог в папке с партиейизменение случайной поддиректории в партии

cd c:\* 

не работает, на самом деле приведет вас в мусорную корзину каждый раз

if exist * (
cd * 
) 

техника его подводит работа

for %d in (*) do cd %d 

не работал

так что я в убытке, есть ли способ сделать это в пакетном режиме?

ответ

2
@echo off 
setlocal EnableDelayedExpansion 
rem Create an array of dir. names 
set n=0 
for /D %%a in (c:\*) do (
    set /A n+=1 
    set dir[!n!]=%%a 
) 
rem Select a random element from the array 
set /A d=%random%*n/32768+1 
rem And CD to it 
cd "!dir[%d%]!" 
+0

+1 ваш является более эффективным, чем у меня. – rojo

+0

безупречный! только то, что мне нужно – user2103892

2
setlocal enabledelayedexpansion 
set c=0 
rem count dirs in c:\ 
for /d %%I in (c:\*) do set /a c+=1 >NUL 
set /a c=%RANDOM% * %c%/32768 + 1 >NUL 
set loop=0 
for /d %%I in (c:\*) do (
    set /a loop+=1 
    if !loop!==%c% cd /d "%%I" 
) 
Смежные вопросы