вместо «или» условие try »и« условие, что оно решит вашу проблему
Исходя из вашего полностью измененного вопроса:
Если в рабочем каталоге был только один файл .png
, вы могли бы просто сделать это в одной строке в командной строке:
For %A In ("*.png") Do RoboCopy "other_folder" "%~nA" /E /MOVE >Nul
Однако, если вы подумаете об этом, как только other_folder
был перемещен в первый раз, его больше не нужно перемещать! Поэтому вам нужно будет скопировать его, а затем все файлы .png
были обработаны, удалите other_folder
.
В командной строке: (две разные команды, первые копии, вторая удаляет)
For %A In ("*.png") Do RoboCopy "other_folder" "%~nA" /E > Nul
RD /S /Q "other_folder"
Аналогично из командного файла:
@For %%A In ("*.png") Do @RoboCopy "other_folder" "%%~nA" /E > Nul
@RD /S /Q "other_folder"
Просто учтите, что если что-то пойдет не так, (например, все содержимое other_folder
не копируется), и вы удалите other_folder
, вы потеряли это содержимое.
В соответствии с вашим запросом на титул, следующий скрипт создаст папку с именем после каждого *.png
в каталоге, а затем переместит соответствующий файл во вновь созданный файл.
Пакет:
for %%i in (*.png) do (mkdir "%%~ni" && move %%i %%~ni)
Командная строка:
for %i in (*.png) do (mkdir "%~ni" && move %i %~ni)
%%i
на папку / каталог источника. ex: move "source dir" "%%~ni"
– John Kens
13 July 2018 в 15:57
Спасибо всем, кого я смог понять
for %%i in (*.png) do mkdir "%%~ni" && move "folder" "%%~ni"
.png
.
– Compo
13 July 2018 в 17:55
просто расширьте часть, которую нужно выполнить DO
:
for %%i in (*.png) do (
mkdir "%%~ni"
convert "%%i" --folder="%%ni\test.bmp"
)
(не уверен, как работает ваша команда convert
- выше - предположение)