Nano Hash - криптовалюты, майнинг, программирование

Пакетный скрипт для рекурсивного переименования файлов и папок

Мне нужен пакетный скрипт Windows для рекурсивного переименования файлов и папок с именем родительской папки и добавления префикса/суффикса.

У меня есть 2 папки fol1 и fol2 со следующей структурой каталогов:

fol1
  ├───fol1.1
  │   └───text.txt
  ├───fol1.2
  │   └───text.txt
fol2
  ├───fol2.1
  └───fol2.2

Я хочу, чтобы дерево было переименовано как:

lon_fol1_par
  ├───lon_fol1.1_par
  │   └───fol1.1_text.txt
  ├───lon_fol1.2_par
  │   └───fol1.2_text.txt
lon_fol2_par
  ├───lon_fol2.1_par
  └───lon_fol2.2_par

Код, который помог мне переименовать, выглядит следующим образом:

FOR /F "tokens=1 delims=" %%A IN ('DIR /B /S /A:D') DO (

   FOR /F "tokens=1 delims=" %%B IN ('DIR /B /A:-D "%%A"') DO (
    pushd %%A
    FOR %%I IN (.) DO RENAME "%%A\%%B" "<Name I want>"%%~xB
    popd ..
  )   
)  

  • Да, это возможно; что ты уже испробовал? помните, что SO не является службой кодирования... 14.09.2015
  • У вас внутри папок только файлы .txt? 15.09.2015
  • Очень похоже на то, что вам нужно: каталоги для обработки файлов"> stackoverflow.com/questions/8397674/ 15.09.2015
  • Да @aschipfl, я кое-что пробовал. FOR /F tokens=1 delims= %%A IN ('DIR /B /S /A:D') DO ( FOR /F tokens=1 delims= %%B IN ('DIR /B /A:-D % %A') DO ( pushd %%A FOR %%I IN (.) DO RENAME %%A\%%B %array[1]%_%%~nB_%%~nI_%array[2]%_% массив[3]%%%~xB popd .. )) 15.09.2015
  • Извините... новичок в этом. Пожалуйста, прочтите внимательно @aschipfl. Спасибо :) 15.09.2015
  • @foxidrive: файлы могут быть любого типа :) 15.09.2015
  • @abhi Вы можете отредактировать свой вопрос, чтобы правильно добавить код, а также предоставить точные сведения о задаче, если вам нужен точный код, который работает в вашей ситуации. 15.09.2015
  • @foxidrive: понял. сделал это. Спасибо :) Теперь направьте меня 15.09.2015
  • пожалуйста, проверьте этот @foxidrive stackoverflow.com/questions/32578334/ 15.09.2015
  • @abhi Пожалуйста, будьте ясны и отредактируйте свой вопрос. В текущем примере вы также не только переименовываете папку, но и файлы в свою родительскую папку. Нет необходимости создавать еще один поток для той же проблемы. 15.09.2015

Ответы:


1

Переименование файлов перед добавлением префикса и суффикса к именам папок

Внимание: этот сценарий подразумевает, что не исключен процесс переименования каталогов, который будет выполнять только условие: папка, содержащая файлы text.txt

Если это так, вам нужно сделать что-то еще, чего нет в этом сценарии.

Примечание. Удалите команду echo перед командой rename, чтобы сделать ее активной. Также вы можете добавить команду PAUSE через одну строку после команды rename, чтобы посмотреть, что произойдет.

@echo off
REM Renaming files first before adding a prefix and a suffix to the folder names

REM Be aware: This script implies that there have not excluded directories...
REM ...renaming process that would only condition: the folder containing the files text.txt
REM If so, you have to do something else that are not in that script.

REM Note: Remove echo command in front of rename command to make it active.

setlocal enabledelayedexpansion
FOR /F "tokens=* delims=" %%F in ('dir /s /b /a-d text.txt') DO (
    set "DIRPATH=%%~dpF"
    set "FILEPATH=%%~F"
    set "FILENAME=%%~nxF"
    IF "!DIRPATH:~-1!" EQU "\" (
        SET "DIRPATH=!DIRPATH:~0,-1!"
    )

    FOR %%G IN ("!DIRPATH!") DO (
        set "PICDIR=%%~nxG"
        echo:
        echo   renaming files
        echo   rename "!FILEPATH!" "!DIRPATH!\!PICDIR!_!FILENAME!"
    )
)
endlocal
REM Then renaming folders with prefix and suffix
set "prefix_=lon_"
set "_suffix=_par"
FOR /F "tokens=* delims=" %%D in ('dir /s /b /ad') do (
    echo   renaming folders
    echo   rename "%%~D" "%prefix_%%%~nD%_suffix%"
)

EXIT /B 0
15.09.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..