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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Управление с папками

Ответить
Настройки темы
CMD/BAT - [решено] Управление с папками

Новый участник


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

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


Добрый вечер уважаемые знатоки скриптовых языков.
Прошу вашей помощи в написании скрипта, который выполняет следующие функции:
-имеется папка с подпапками и файл source.txt
необходимо содержимое каждой подпапки переместить в подпапку подпапки SOURCE(которую необходимо создать)
и из файла source.txt по случайной строчке поместить в каждую подпапку(рядом с SOURCE) с именем source.txt

Отправлено: 22:06, 28-10-2014

 

Ветеран


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

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


ajakzs, объясните всё, что Вы написали, оперируя полными именами упомянутых папок (и тогда слово "подпапка" употреблять не нужно), и приведите содержимое файла "source.txt" и его "местонахождение".
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:50, 28-10-2014 | #2



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

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


Новый участник


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

Профиль | Отправить 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
Благодарности: 575

Профиль | Отправить 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
Благодарности: 0

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


СУУПер !
Спасибо Большое, а можно сделать, что из файла source.txt брались случайные строки?

Отправлено: 22:21, 29-10-2014 | #5


Ветеран


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

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


Цитата ajakzs:
а можно сделать, что из файла source.txt брались случайные строки? »

Код: Выделить весь код
@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
Благодарности: 0

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


Я конечно, совсем обнаглел, а можно добавить проверку на существование этой папки source и если она есть, то ничего не делать?

Отправлено: 10:32, 30-10-2014 | #7


Ветеран


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

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


Цитата ajakzs:
а можно добавить проверку на существование этой папки source и если она есть, то ничего не делать? »

Код: Выделить весь код
@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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Управление с папками

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Управление компьютера при помощи речи - Голосовое управление 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




 
Переход