WedX - журнал о программировании и компьютерных науках

Пакетное переименование файлов с именем папки и порядковым номером - Отправить в меню

У меня есть папка с названием продажи. У меня есть imgxy.jpg, imgab.jpg и т. д. в этой папке. Когда я щелкаю правой кнопкой мыши папку продаж и отправляю в файл rename.bat (я уже скопировал файл rename.bat в c:\documents and settings\username\send To), я хочу, чтобы файлы в папку продаж изменить на sales1.jpg, sales2.jpg и т. д. Это поведение должно быть верным для всего, что я отправляю в этот файл .bat. Следующий код работал правильно на Windows 7 прошлой ночью. Теперь у меня Windows XP SP3, и это не работает. Он пытается переименовать файлы в папке *c:\documents and settings\username*

Пожалуйста, помогите переименовать файл .bat код ниже

@ECHO OFF
setlocal enabledelayedexpansion
set foldername=%1
for %%i in (%bar%) do set bar=%%~ni
FOR /D  %%# in (%bar%) DO (
PUSHD "%%#"
FOR %%@ in ("*") DO (
    set /a "inc+=1"
    Echo Ren: ".\%%~n#\%%@" "%%~n#!inc!%%~x@"
    Ren "%%@" "%%~n#!inc!%%~x@"
)
POPD
)

  • Это настоящий сценарий? Почему существует переменная foldername, которая нигде не используется после присвоения ей значения? Почему на переменную bar ссылаются (в первом цикле for) до того, как ей будет присвоено какое-либо значение? Возможно, foldername и bar должны быть одной и той же переменной? 08.02.2014
  • Привет, скрипт делает другие вещи, и для этого я назначил его, для удобства публикации я убрал остальную часть кода. имя папки дает полный путь к папке, где bar дает только имя родительской папки 08.02.2014
  • Я имею в виду, разве первый цикл for не должен выглядеть так: for %%i in (%foldername%) do set bar=%%~ni? 08.02.2014

Ответы:


1

Проверьте это - он принимает папку, а не файлы, но вы упомянули папки в своем вопросе.

Не называйте его rename.bat, потому что rename — это внутренняя команда.

@ECHO OFF
setlocal enabledelayedexpansion
PUSHD "%~1"
set inc=0
FOR /f "delims=" %%a in ('dir /b /a-d') DO (
    set /a inc+=1
    Echo Ren: "%%a" "%~n1!inc!%%~xa"
    Ren "%%a" "%~n1!inc!%%~xa"
)
POPD
08.02.2014
  • привет, спасибо, переименовать было использовано символическое имя, я попробовал код, и он проходит цикл переименования и переименовывает файл своим собственным именем файла (Ren: IMG_105511.JPG IMG_1055111.JPG), следовательно, ничего не меняется, но приведенный выше я использовали работы на winows 7 08.02.2014
  • Посмотри снова. Переименованный файл имеет дополнительную 1 в конце, что вы и просили. 08.02.2014
  • Да, я согласен с этим, но хотел, чтобы имя файла было именем имени его папки. Здесь все, что он делает, это добавляет порядковый номер к существующему имени файла. Спасибо 09.02.2014
  • Мне это было непонятно. Попробуйте отредактированный код выше. 10.02.2014
  • Спасибо, код сработал как угощение. Спасибо еще раз 11.02.2014
  • Добро пожаловать. Если это работает для вас, пожалуйста, примите ответ, нажав на галочку рядом с ним. Люди, которые ищут в будущем, будут знать, что стоит попробовать. 11.02.2014
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]