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

вместо «или» условие try »и« условие, что оно решит вашу проблему

-1
задан Nick 13 July 2018 в 17:04
поделиться

4 ответа

Исходя из вашего полностью измененного вопроса:

Если в рабочем каталоге был только один файл .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, вы потеряли это содержимое.

1
ответ дан Compo 17 August 2018 в 12:32
поделиться

В соответствии с вашим запросом на титул, следующий скрипт создаст папку с именем после каждого *.png в каталоге, а затем переместит соответствующий файл во вновь созданный файл.

Пакет:

for %%i in (*.png) do (mkdir "%%~ni" && move %%i %%~ni)

Командная строка:

for %i in (*.png) do (mkdir "%~ni" && move %i %~ni)
1
ответ дан John Kens 17 August 2018 в 12:32
поделиться
  • 1
    Я хочу переместить другую папку в папку, созданную "%~ni" – Nick 13 July 2018 в 15:53
  • 2
    Просто измените %%i на папку / каталог источника. ex: move "source dir" "%%~ni" – John Kens 13 July 2018 в 15:57
  • 3
    Пожалуйста, см. Мой ответ, Джон по той причине, что вышеупомянутый комментарий должен работать только в том случае, если в текущем каталоге есть только один .png-файл. – Compo 13 July 2018 в 18:22

Спасибо всем, кого я смог понять

for %%i in (*.png) do mkdir "%%~ni" && move "folder" "%%~ni"

0
ответ дан Nick 17 August 2018 в 12:32
поделиться
  • 1
    См. Мой ответ по той причине, что это должно работать только в том случае, если в текущем каталоге есть только один файл .png. – Compo 13 July 2018 в 17:55

просто расширьте часть, которую нужно выполнить DO:

for %%i in (*.png) do (
  mkdir "%%~ni"
  convert "%%i" --folder="%%ni\test.bmp"
)

(не уверен, как работает ваша команда convert - выше - предположение)

1
ответ дан Stephan 17 August 2018 в 12:32
поделиться