Моя программа импорта фотографий помещает резервную копию фотографий в папку с надписью "импортировано в ДАТУ". Эти папки создаются как подпапки нужной папки расположения. У меня есть много таких "импортированных" папок в нескольких слоях папок. Примером может быть:

C:\pictures\all photos 2013\01jan13\импортировано 18 января.

Есть ли способ отсканировать папку с изображениями через каждую из ее подпапок и заставить программу переместить какие-либо файлы из папки "import on" в папку над ней? Извините, если это сбивает с толку!

Спасибо за любую помощь

1 ответ1

0

Это работает в Windows 7; Я не знаю о других версиях:

for /r C:\pictures %F in (*.*) do move %F %F\..\..

Заметки:

  • for /r C:\pictures %F in (*.*) do … выполняет следующую инструкцию один раз для каждого файла в C:\pictures , рекурсивно, с %F в качестве имени файла.
  • move перемещает файл.
  • Здесь становится сложно.  Вы знаете, что cd .. поднимает вас на один уровень.  Что ж, получается, что вы можете сказать \Users\rshonaker\Documents\fubar.doc\.. , и он будет ссылаться на \Users\rshonaker\Documents (каталог, в котором находится файл), поэтому %F\.. is каталог, в котором находится файл %F  А потом %F\..\.. является родителем этого каталога.

Больше примечаний:

  • Используйте с осторожностью.  Если у вас есть файлы в C:\pictures , они будут пытаться переместить их в C:\ . Если у вас есть файлы в C:\pictures\all photos 2013 , они будут пытаться переместить их в C:\pictures и т.д.
  • Если вы хотите поместить это в скрипт, замените все вхождения %F на %%F

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .