Plik wsadowy do losowego skopiowania pliku do innego folderu

-2

Potrzebuję pliku wsadowego:

Dany folder A zawierający .txtpliki; na przykład,

C:\A\a.txt
C:\A\b.txt
C:\A\c.txt
C:\A\d.txt

i folder B (który jest pusty), potrzebuję skryptu wsadowego, aby skopiować jeden losowo wybrany plik z folderu A do folderu B za każdym razem, gdy go uruchamiam.

thanhlapvn
źródło

Odpowiedzi:

1

Zainspirowany tym postem skrypt może wyglądać tak

@echo off

setlocal enabledelayedexpansion

set source=c:\A
set target=c:\B

set count=0
set x=0

:: put all the files into a pseudo-array prefixed with "TXT_"
for /r "%source%" %%a in (*.txt) do (
    set TXT_!count!=%%~a
    set /a count+=1
)

:: Use the 'modulo' function to get a usable value from system variable %random%
set /a x="%random% %% count"

:: Pull the relevant item out of the "TXT_" 'array'
set chosen=!TXT_%x%!

echo:I chose :: %chosen%
copy /y "%chosen%" "%target%" 1>nul
endlocal

Zakłada się, że w folderze źródłowym znajduje się umiarkowana liczba plików. W przeciwnym razie liczba zmiennych w twoim środowisku może stać się zbyt duża.

Axel Kemper
źródło