![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перемещение папок исходя из названия ярлыков в другой папке. |
|
CMD/BAT - [решено] Перемещение папок исходя из названия ярлыков в другой папке.
|
Новый участник Сообщения: 2 |
Всем здравствуйте, прошу помочь с такой проблемой.
Нужно вырезать и переместить в конкретную папку другие папки из конкретного места исходя из названий ярлыков в первой папке. Пример: 1 папка основная - C:\1 - в ней лежат ярлыки 2 папка C:\рабочая папка\ - в ней лежат папки Нужно из папки C:\рабочая папка\ переместить в C:\1\ - только те папки, где есть названия ярлыков, которые содержатся в C:\1\. Допустим лежит ярлык в C:\1\recor.exe. В папке C:\рабочая папка\ - есть папка с таким названием (C:\рабочая папка\recor ), но есть и другие папки, нужно чтобы вырезалась и перемещалась только папка с названием "recor" в C:\1\ (потому что такое название ярлыка есть в C:\1). Реализуемо ли это вообще? Если да, то я прошу Вас помочь. |
|
Отправлено: 11:42, 30-04-2020 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 14:22, 30-04-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать а если структура такая?
так будет добавлена единичка (или n+1) к имени перемещаемой папки @echo off set "d_lnk=C:\1" set "ext=lnk" set "d_work=C:\рабочая папка" set "d_out=C:\OUT" if not exist "%d_out%" md "%d_out%" for /f "delims=" %%a in ('dir /ad/b/s "%d_work%"') do call :l "%d_lnk%" "%ext%" "%d_out%" "%%a" pause& exit :l setlocal pushd "%~3" if exist "%~1\%~n4.%~2" if not exist "%~n4%n%" (>nul xcopy "%~4" "%~n4%n%\"& >nul 2>&1 rd /s /q "%~4") else (set /a n+=1& goto l) popd endlocal exit /b |
Отправлено: 17:15, 30-04-2020 | #3 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Про рекурсивный перебор в ТЗ явно не сказано.
![]() |
------- Отправлено: 21:04, 30-04-2020 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать пока он (рекурсивный перебор) случайно не нарисовался да еще именно с повтором имени.
|
|
Отправлено: 00:53, 01-05-2020 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Это как обычно
![]() |
Отправлено: 02:53, 01-05-2020 | #6 |
Deadooshka Сообщения: 2566
|
Профиль | Отправить PM | Цитировать рекурсивно можно и так
$lnkdir = 'C:\1' $folddir = 'C:\рабочая папка' $names = (get-childitem $lnkdir '*.lnk').BaseName get-childitem $folddir -directory -recurse | foreach { if ($_.BaseName -in $names) { $f0 = $lnkdir, $_.BaseName -join '\'; $c = $null while (test-path $($fold = $f0 + $c; $c++; $fold) -pathtype container) { "$fold exists, adding 1" } move-item $_.FullName $fold -verbose } } |
Отправлено: 13:49, 01-05-2020 | #7 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Спасибо огромное за Ваши ответы. Всё работает.
|
Отправлено: 14:10, 01-05-2020 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Создание папок исходя из дат создания файлов и перемещение их в эти папки | mezzin | Скриптовые языки администрирования Windows | 13 | 25-01-2018 18:38 | |
CMD/BAT - [решено] Переименование файла исходя из его названия | Sta1917 | Скриптовые языки администрирования Windows | 6 | 09-09-2012 00:04 | |
VBS/WSH/JS - Создание папок исходя из имени хоста.Создание ярлыков. | ufunf | Скриптовые языки администрирования Windows | 1 | 18-02-2010 13:59 | |
Конкурс - Размещение собственных папок, файлов и ярлыков в папке Компьютер | OSZone | Microsoft Windows 7 | 0 | 27-10-2009 01:30 |
|