Изменение файла и его использование в *bat
Наткнулся на такую проблему. Извиняюсь, я - новичок.
Вот в чем дело. Хотелось бы, чтобы данные записанные в файл, например 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 записан. Как бы чтобы в последней строке, он эту строку ставил в путь, и по нему находил что нужно. (Я не знаю, как это правильно выразить, как смог) Буду признателен. |
|
Хотелось бы чтобы батник все делал сам.
Суть вот в чем. Есть Папка, пусть будет Папка1. В Папке1 лежит другая Папка2.xxx. , где xxx неизвестно. Но в Папке1 лежит файл, в котором лежит название этого самого xxx . Нужно скопировать все файлы из папки Папка2.xxx. . То есть я хочу, чтобы он из Папки1 брал файл, открывал его, я дописывал ему путь в этом файле к папке Папка2.xxx. и он бы копировал все из этой самой папки. |
Спасибо, нашел решение.
Код:
set /p variable=<%COMPUTERNAME%\Changed.txt Вот код. Почему копируются не все файлы и папки? Код:
xcopy C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\%variable% %COMPUTERNAME%\Library /H /E /G /Q /R /Y |
Код:
@Echo off |
Цитата:
Код:
%AppData% |
Я не очень понял.
Цитата:
|
|
Я не совсем понял.
Я имел ввиду, почему копирует не все файлы и папки содержащиеся в папке %variable% Код:
set /p variable=<%COMPUTERNAME%\Changed.txt xcopy C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\%variable% %COMPUTERNAME%\Password |
Например?
|
Например в папке variable есть 4 папки и 15 файлов, так вот, папки не копируются вообще, а из 15 файлов копируются только 9. В папке разные файлы *db, *sqlite, *xml и тд. Не копируются файлы *db - никакие и еще пара файлов.
Если копировать их отдельно, то все замечательно. Но мне нужно скопировать в подпапки и все файлы из папки variable. |
Потому что:
Код:
set /p variable=<%COMPUTERNAME%\Changed.txt Используйте цикл: Код:
@echo off |
О, благодарю все отлично заработало!
А можете объяснить пожалуйста, что именно делает этот цикл ? Вот здесь именно. Код:
for /f "UseBackQ delims=" %%A in |
UseBackQ в данном контексте - это страховка от возможных символов пробела в пути и/или имени файла. Поэтому вариант без UseBackQ менее предпочтителен.
Модификатор UseBackQ изменяет правила выбора действия в зависимости от вида кавычек под скобками. Для двойных кавычек ("") - означает, что нужно построчно прочитать указанный в них файл. "delims=" задает пустой разделитель вместо принятых по-умолчанию пробела и знака табуляции. Это тоже страховка от пробелов, но уже при чтении содержимого самого файла. Иначе информация после пробела будет попадать во 2-й и далее токен (лексические части, разбитые разделителем). %%A - объявление имени переменной цикла, куда будет попадать 1-й токен. После ключевого слова Do указывается точно в таком же виде, где и раскрывается в значение. Регистр имеет значение. (одна итерация цикла = 1 строке файла). Есть исключения. Подробности: For /? for /f - ключ для использования специальных правил лексического разбора. Может использоваться только при включенном режиме расширенной обработки команд. В некоторых ОС такой режим отключен. Не будет лишним форсировать его включение. Добавьте после @echo off Код:
SetLocal EnableExtensions |
Спасибо, большое! :)
|
Время: 14:14. |
Время: 14:14.
© OSzone.net 2001-