Проблема пакетного перемещения файлов из папки в другую папку

#batch-file

#пакетный файл

Вопрос:

Я хочу использовать пакет для перемещения файла (изображения) из одной папки в другую. Я делал это в прошлом успешно, но я не знаю, почему это не работает. Я не программист, но у меня был друг, который помог мне с этим. В прошлый раз это работало, теперь нет. Я делаю что-то не так? Нужно что-то изменить в коде? Студентка, которую я использую, это:

 @echo off setlocal EnableDelayedExpansion cd C:UsersUserDropboxArtwork1 set n=0 for %%f in (*.*) do (  set /A n =1  set "file[!n!]=%%f" ) set /A "rand=(n*%random%)/32768 1" move "!file[%rand%]!" C:UsersUserDropboxArtwork2  

Я, очевидно, изменю путь к файлам на нужные, но что-нибудь не так с кодом? Несколько месяцев назад это работало.

Заранее спасибо.

Комментарии:

1. Ну, а что не работает? Как это не работает? Не могли бы вы уточнить? трудно догадаться, в чем дело.

2. хорошо. Я дважды щелкаю по нему, чтобы запустить, и изображение не перемещается из одной папки в другую. На долю секунды появляется черный экран программы, что означает, что она запускается, но движение не выполняется

3. На каком диске находится скрипт? является ли путь C:UsersuserDropboxArtwork общим? в самом конце сценария добавьте pause , запустите его еще раз и скажите мне, что вы видите.

4. С. Как и кормильцы. Я могу вставить сюда точный код, который я использую с путями к папкам. Проверю, что вы отредактировали, и дам вам знать

5. Нет, просто добавьте pause в конец сценария, запустите его снова и скажите мне, что в нем написано

Ответ №1:

Чтобы сделать скрипт пригодным для использования в более широком масштабе, не нужно cd ни:

 @echo off setlocal EnableDelayedExpansion set "in=%userprofile%DropboxArtwork1" set "out=%userprofile%DropboxArtwork2" echo Default Input path: %in% Default Output path: %out set /p "in=Enter Path to copy from (or Press Enter keep Default in path): " set /p "out=Enter Destination (or Press Enter keep Default out path) set n=0 for %%f in ("%in%*.*") do (  set /A n =1  set "file[!n!]=%%~ff" ) set /A "rand=(n*%random%)/32768 1" move "!file[%rand%]!" "%out%"