|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Управление с папками |
|
CMD/BAT - [решено] Управление с папками
|
Новый участник Сообщения: 30 |
Профиль | Отправить PM | Цитировать Добрый вечер уважаемые знатоки скриптовых языков.
Прошу вашей помощи в написании скрипта, который выполняет следующие функции: -имеется папка с подпапками и файл source.txt необходимо содержимое каждой подпапки переместить в подпапку подпапки SOURCE(которую необходимо создать) и из файла source.txt по случайной строчке поместить в каждую подпапку(рядом с SOURCE) с именем source.txt |
|
Отправлено: 22:06, 28-10-2014 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать ajakzs, объясните всё, что Вы написали, оперируя полными именами упомянутых папок (и тогда слово "подпапка" употреблять не нужно), и приведите содержимое файла "source.txt" и его "местонахождение".
|
Отправлено: 23:50, 28-10-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать И сходная папка: в ней папка1, папка 2, папка3, source.txt
в каждой папке: файл1,файл2,файл3,файл4,файл5 source.txt : строка описания1, строка описания 2, строка описания 3 на выходе: в каждой из папок появляется папа source и все содержимое перемещается в эту папку папка1/source/файл1,файл2,файл3,файл4,файл5 , рядом с папкой source новый файл, содержимое которого 1 строка из source.txt папка2/source/файл1,файл2,файл3,файл4,файл5 , рядом с папкой source новый файл, содержимое которого 2 строка из source.txt папка3/source/файл1,файл2,файл3,файл4,файл5 , рядом с папкой source новый файл, содержимое которого 3 строка из source.txt |
Последний раз редактировалось ajakzs, 29-10-2014 в 03:39. Отправлено: 03:33, 29-10-2014 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off chcp 1251>nul set "dir=Исходная папка" set "file=source.txt" chcp 866>nul pushd "%dir%" for /f "delims=" %%i in ('"2>nul dir /ad/b"') do ( set /a count+=1 for /f "delims=" %%j in ('"2>nul dir /b "%%i""') do ( md "%%i\source" 2>nul move "%%i\%%j" "%%i\source">nul 2>&1 ) for /f "tokens=1* delims=:" %%j in ('findstr /n "^" "%file%"') do ( for /f %%l in ('set /a count') do ( if %%j==%%l echo %%k>"%%i\%file%" ) ) ) popd exit /b |
Отправлено: 20:52, 29-10-2014 | #4 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать СУУПер !
Спасибо Большое, а можно сделать, что из файла source.txt брались случайные строки? |
|
Отправлено: 22:21, 29-10-2014 | #5 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата ajakzs:
@echo off chcp 1251>nul :: Значением переменной "dir" может быть также и полное имя папки, :: и буква диска с двоеточием (со слешем или без него). set "dir=Исходная папка" :: Значениями переменных "file" и "folder" полные имена быть не могут! set "file=source.txt" set "folder=source" chcp 866>nul pushd "%dir%" for /f "usebackq delims=" %%i in ("%file%") do call set $%%random%%=%%i for /f "delims=" %%i in ('"2>nul dir /ad/b"') do ( set /a count+=1 for /f "delims=" %%j in ('"2>nul dir /b "%%i""') do ( md "%%i\%folder%" 2>nul move "%%i\%%j" "%%i\%folder%">nul 2>&1 ) for /f "tokens=1,2* delims=:=" %%j in ('set $^| findstr /n "^"') do ( for /f %%m in ('set /a count') do ( if %%j==%%m echo %%l>"%%i\%file%" ) ) ) popd exit /b |
|
Отправлено: 00:33, 30-10-2014 | #6 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Я конечно, совсем обнаглел, а можно добавить проверку на существование этой папки source и если она есть, то ничего не делать?
|
Отправлено: 10:32, 30-10-2014 | #7 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата ajakzs:
@echo off chcp 1251>nul :: Значением переменной "dir" может быть также и полное имя папки, :: и буква диска с двоеточием (со слешем или без него). set "dir=Исходная папка" :: Значениями переменных "file" и "folder" полные имена быть не могут! set "file=source.txt" set "folder=source" chcp 866>nul pushd "%dir%" for /f "usebackq delims=" %%i in ("%file%") do call set $%%random%%=%%i for /f "delims=" %%i in ('"2>nul dir /ad/b"') do ( set /a count+=1 rem Если папка "%folder%" существует, то ничего не происходит. md "%%i\%folder%" 2>nul&& ( for /f "delims=" %%j in ('"2>nul dir /b "%%i""') do ( move "%%i\%%j" "%%i\%folder%">nul 2>&1 ) for /f "tokens=1,2* delims=:=" %%j in ('set $^| findstr /n "^"') do ( for /f %%m in ('set /a count') do ( if %%j==%%m echo %%l>"%%i\%file%" ) ) ) ) popd exit /b |
|
Отправлено: 06:17, 31-10-2014 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Управление компьютера при помощи речи - Голосовое управление | mihanik | Программное обеспечение Windows | 24 | 11-04-2014 03:36 | |
Блог - Управление папками с фоновыми рисунками рабочего стола | hb860 | Microsoft Windows 8 и 8.1 | 0 | 10-07-2012 00:30 | |
Службы - Ошибка с папками | naguao | Microsoft Windows 2000/XP | 1 | 08-05-2012 15:50 | |
V. 2007 - Управление общей адресной книгой и папками | admt | Microsoft Exchange Server | 1 | 02-02-2010 20:53 | |
Проблема с папками | destrier | Microsoft Windows 2000/XP | 2 | 20-11-2006 17:29 |
|