Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Переименование первых подпапок в каждой папке

Ответить
Настройки темы
VBS/WSH/JS - Переименование первых подпапок в каждой папке

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно ли создать батник который входил в некую Главную папку, имеющую множество подпапок с разными уровнями вложения и со всеми этими подпапками (всех уровней вложения) проделывал бы следующее - брал бы первую из них (как они расположены в папке) и добавлял в имя какой-то знак (например - @) спереди.

Отправлено: 02:17, 24-10-2013

 

Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата:
Цитата ruslaw:
Можно ли создать батник который входил в некую Главную папку, имеющую множество подпапок с разными уровнями вложения и со всеми этими подпапками (всех уровней вложения) проделывал бы следующее - брал бы первую из них (как они расположены в папке) и добавлял в имя какой-то знак (например - @) спереди.
Хочу уточнить фразу "как они расположены в папке". А как они у вас расположены? В алфавитном порядке, по возрастанию размера или по-другому отсортированы (это вопрос к проводнику)? На powershell решается просто
Код: Выделить весь код
function RenameFolder ($folderPath) {
    if ($CurPath=gci $folderPath.FullName | ? `
        {$_.PsIsContainer -eq $true} | sort | select -First 1) {
               RenameFolder ($CurPath)
    }
    $NewfolderPath=(Split-Path $folderPath.FullName -Parent)+"\@"+`
           (Split-Path $folderPath.FullName -Leaf)
    Rename-Item $folderPath.FullName -NewName $NewfolderPath -WhatIf
}

RenameFolder (gci "D:\Downloads" | ? {$_.PsIsContainer -eq $true} | `
        sort | select -First 1)

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855


Последний раз редактировалось sunnykey, 24-10-2013 в 13:54. Причина: криво код вставился


Отправлено: 13:17, 24-10-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата sunnykey:
А как они у вас расположены? В алфавитном порядке, по возрастанию размера или по-другому отсортированы (это вопрос к проводнику)? »
Это вопрос к файловой системе. На NTFS — всегда в лексикографическом, на FATx — в порядке поступления в каталог.

Отправлено: 14:58, 24-10-2013 | #3


Пользователь


Сообщения: 70
Благодарности: 19

Профиль | Отправить PM | Цитировать


Если без разных уровней вложений, то просто:
cd /d "Главная Папка"

for /F "delims=" %%d in ('dir /A:D *.*') do (
move %%d @%%~nxd
goto e
)
:e


C вложениями - сложнее. Надо подумать.


Вот придумал и отладил:
Код: Выделить весь код
cd /d "Главная Папка"
call :one_dir
for /D /R %%f in (*.*) do (
pushd %%f
call :one_dir
popd
)
goto :eof
:one_dir
for /F "delims=" %%d in ('dir /B /A:D *.*') do (
  move %%d @%%~nxd
  goto :eof
)
Единственное, что меня смутило: противоречие темы и текста сообщения. В теме идёт речь о VBS/WSH/JS, а в тексте - о батнике. Это же разные языки !

Последний раз редактировалось Гуллипут, 25-10-2013 в 21:28. Причина: Доработка решения.


Отправлено: 23:50, 24-10-2013 | #4


Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


А как они у вас расположены? - Да, в алфавитном порядке (по имени)

Отправлено: 10:36, 25-10-2013 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Переименование первых подпапок в каждой папке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование файлов в папке по имени папки_счётчик Sergo_zloy Скриптовые языки администрирования Windows 13 17-01-2014 16:58
CMD/BAT - [решено] разархивировать архив в каждой папке NibelungXXX Скриптовые языки администрирования Windows 2 30-08-2013 22:31
Доступ - Не применяются разрешения для подпапок Vershinsky Microsoft Windows 8 и 8.1 0 19-07-2013 08:43
CMD/BAT - [решено] Удаление первых 9 символов в каждой строке TXT файла pzh2393 Скриптовые языки администрирования Windows 1 18-05-2012 16:53
CMD/BAT - выполнение операции в каждой папке диска. SchoolBoy Скриптовые языки администрирования Windows 1 17-11-2010 10:07




 
Переход