Sie benötigen eine bat-Datei, um 30 Fotos zufällig aus einem Ordner in einen anderen zu verschieben

-4

Ich habe einen Ordner "C: \ TEST \ Clean" mit vielen Fotos (sagen wir 436) und ich muss 30 davon in den Ordner "C: \ Dropbox \ Apps \ AutoPost \ For_Post_1" verschieben.

Ich habe dies bis jetzt, aber es ist für 1 Datei und ich brauche es für 30.

@echo off
set folder=C:\TEST\Clean
set destfolder=C:\Dropbox\Apps\AutoPost\For_Post_1

for /f "delims=" %%C in ('dir /b /a-d "%folder%\*.jpg" ^| find /c /v ""') do set /A num=%random% %% %%C
for /f "delims=" %%F in ('dir /b /a-d "%folder%\*.jpg" ^| more +%num%') do set name=%%F & goto next

:next

echo Wallpaper is now %name%
move "%folder%\%name%" "%destfolder%\%name%"
Leonidas Maliagros
quelle
1
Wir sind kein Kodierungsdienst. Was hast du bis jetzt (Ich habe noch nicht voreingestellt, aber das passiert jedes Mal für solche Fragen.)
Varon
Hallo Varon, vielleicht habe ich etwas falsch verstanden und Sie müssen mir eine Frage stellen. Ich habe nichts getan, weil ich nicht weiß, wie es geht. Ich google es, aber ich hatte kein Glück (ich verstehe einige Ergebnisse nicht). Wenn Sie mir helfen können (Sie oder jemand anderes hier), machen Sie bitte oder sagen Sie mir, ob ich meine Frage von der Plattform löschen muss. Danke noch einmal.
Leonidas Maliagros
"StackExchange" und Unterseiten bilden eine Hilfeplattform. Was Sie möchten, ist eine vollständige Bat-Datei, die diese Dinge für Sie erledigt. Sie haben keine Ideen beigesteuert. Verstehst du was ich meine? Wenn ich zu einer Softwarefirma gehe und 100 $ bezahle, kann ich um eine solche Datei bitten, aber wenn ich Hilfe bekommen möchte, würde ich sagen: Ich habe es versucht diese und diese ... Hier Ich denke, dass etwas schief geht ... ich verstehe nicht diese line ... --- Das ist der Unterschied
Varon
1
Danke Varon, ich habe es verstanden. Ich habe bisher das obige aber nur 1 Foto verschoben. Können Sie mir bitte helfen, 30 davon auf einmal umzuziehen? @echo off set folder = C: \ TEST \ Clean set destfolder = C: \ Dropbox \ Apps \ AutoPost \ For_Post_1 für / f "delims =" %% C in ('dir / b / ad "% Ordner% *. jpg "^ | find / c / v" "') set / A num =% random% %% %%% C für / f" delims = "%% F in (' dir / b / ad"% Ordner% *). jpg "^ | more +% num% ') set name = %% F & amp; weiter zum nächsten echo Das Hintergrundbild ist jetzt% name% move "% ordner% \% name%" "% destfolder% \% name%"
Leonidas Maliagros
Wenn der genannte Code also für eine Datei funktioniert, führen Sie den gleichen Code in einer Schleife für 30 Iterationen aus
SeanClt

Antworten:

1

Sie können das folgende Skript verwenden, um das bereits geschriebene Snippet 30-mal auszuführen:

@ECHO off
SET src=C:\TEST\Clean
SET dst=C:\Dropbox\Apps\AutoPost\For_Post_1
SET ext=*.jpg

FOR /L %%G IN (1,1,30) DO (call :subroutine "%%G")
GOTO :eof

:subroutine
    FOR /f %%A IN ('dir /b /s %src%\%ext% ^| find /v /c ""') DO SET cnt=%%A
    FOR /f "delims=" %%C IN ('dir /b /s "%src%\%ext%" ^| find /c /v ""') DO (
      SET /A num=%ranDOm% %% %%C
      FOR /f "delims=" %%F IN ('dir /b /s "%src%\%ext%" ^| more +%num%') DO SET name=%%F & GOTO next
    )   
    :next
    ECHO Round %1 : File %name%
    MOVE %name% %dst%
    EXIT /B

:eof

Beste Erklärung für for-Loops, die ich gefunden habe: http://ss64.com/nt/for.html
EXIT /B ist in Windows 2000 und höher verfügbar und ähnelt einem Common return

Varon
quelle
Würden Sie normalerweise eine Batch-Datei verwenden, oder verwenden Sie eine andere Sprache, wenn ja, welche?
barlop
@barlop Ich denke, ich würde lieber die Windows Explorer-Sprache des Drag & Drop verwenden :)
Don't Root here plz...