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

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

Ответить
Настройки темы
CMD/BAT - [решено] Изменение файла и его использование в *bat

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


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

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


Наткнулся на такую проблему. Извиняюсь, я - новичок.
Вот в чем дело. Хотелось бы, чтобы данные записанные в файл, например Results.txt - можно было изменить.
И измененную строку из этого файла, как-нибудь экспортировать в *bat (или как это называется), чтобы по этому пути скопировать файл в папку, например %COMPUTERNAME%\Library.

copy C:\Users\Profile.ini %COMPUTERNAME%
@findstr "Path=Profiles" %COMPUTERNAME%\Profiles.ini>%COMPUTERNAME%\Results.txt
MD %COMPUTERNAME%\Library

copy C:\Results.txt %COMPUTERNAME%\Library

Вместо Results.txt - должен он видить путь. Чтобы вместо Results.txt стоял путь, тот что в самом Results.txt записан.

Как бы чтобы в последней строке, он эту строку ставил в путь, и по нему находил что нужно.
(Я не знаю, как это правильно выразить, как смог)

Буду признателен.

Отправлено: 19:33, 30-03-2013

 

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


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

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


Например в папке variable есть 4 папки и 15 файлов, так вот, папки не копируются вообще, а из 15 файлов копируются только 9. В папке разные файлы *db, *sqlite, *xml и тд. Не копируются файлы *db - никакие и еще пара файлов.
Если копировать их отдельно, то все замечательно.
Но мне нужно скопировать в подпапки и все файлы из папки variable.

Отправлено: 13:02, 01-04-2013 | #11



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

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


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


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

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


Потому что:
Код: Выделить весь код
set /p variable=<%COMPUTERNAME%\Changed.txt
считывает в переменную только 1-ю строку. А больше и нельзя.

Используйте цикл:

Код: Выделить весь код
@echo off
for /f "UseBackQ delims=" %%A in ("%COMPUTERNAME%\Changed.txt") do (
  xcopy "C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\%%A" "%COMPUTERNAME%\Password" /C /E /H /R /Y
)
Ключи для Xcopy /? сами подставите нужные.

-------
Alex Dragokas

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:03, 01-04-2013 | #12


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


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

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


О, благодарю все отлично заработало!
А можете объяснить пожалуйста, что именно делает этот цикл ?
Вот здесь именно.
Код: Выделить весь код
for /f "UseBackQ delims=" %%A in

Отправлено: 15:09, 01-04-2013 | #13


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


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

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


UseBackQ в данном контексте - это страховка от возможных символов пробела в пути и/или имени файла. Поэтому вариант без UseBackQ менее предпочтителен.
Модификатор UseBackQ изменяет правила выбора действия в зависимости от вида кавычек под скобками.
Для двойных кавычек ("") - означает, что нужно построчно прочитать указанный в них файл.

"delims=" задает пустой разделитель вместо принятых по-умолчанию пробела и знака табуляции.
Это тоже страховка от пробелов, но уже при чтении содержимого самого файла. Иначе информация после пробела будет попадать во 2-й и далее токен (лексические части, разбитые разделителем).
%%A - объявление имени переменной цикла, куда будет попадать 1-й токен. После ключевого слова Do указывается точно в таком же виде, где и раскрывается в значение. Регистр имеет значение. (одна итерация цикла = 1 строке файла). Есть исключения. Подробности: For /?

for /f - ключ для использования специальных правил лексического разбора.
Может использоваться только при включенном режиме расширенной обработки команд.
В некоторых ОС такой режим отключен. Не будет лишним форсировать его включение. Добавьте после @echo off
Код: Выделить весь код
SetLocal EnableExtensions

-------
Alex Dragokas

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:52, 01-04-2013 | #14


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


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

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


Спасибо, большое!

Отправлено: 18:59, 01-04-2013 | #15



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Создание TXT файла для каждого файла в каталоге ISO и заполнение его по шаблону onemal Скриптовые языки администрирования Windows 23 13-05-2017 15:35
CMD/BAT - Запуск BAT файла с правами локального пользователя из сетевого BAT файла Yurii_L Скриптовые языки администрирования Windows 9 05-09-2012 14:27
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? axmed0207 Скриптовые языки администрирования Windows 1 19-01-2012 06:14
CMD/BAT - [решено] Замена файла boot.ini с помощью bat файла Chekis9100a Скриптовые языки администрирования Windows 3 24-11-2010 08:17
Router - Внешний IP и его использование, дисконнекты. Chilli Сетевое оборудование 3 09-10-2010 00:50




 
Переход