|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Чтение строки из файла в переменную |
|
CMD/BAT - [решено] Чтение строки из файла в переменную
|
Новый участник Сообщения: 8 |
Здравствуйте. Т.к. в написании bat файлов нет опыта, необходима помощь. В определенном каталоге по условию появляется текстовый файл Flag.txt. В файле есть только одна строка - это путь до каталога картинок, формата bmp. Нужно в имеющийся рабочий bat файл, который выполняет некоторые действия, добавить строки, которые бы проверяли наличие файла Flag.txt, читали бы содержимое строки пути и копировали бы все картинки из каталога картинок в определеный каталог.
В батнике есть уже: if exist Out\123.xml xcopy Out\123.xml \\User\In\ /y Эта строка, при наличии файла, копирует его в каталог по сети. И после нужно добавить что-то типа :сначала, видимо, определить путь, откуда копировать файлы (это строка в файле Flag.txt), и if exist Out\Flag.txt xcopy <Здесь нужен путь, который определили>\*.bmp \\User\Image\ /y Заранее спасибо! |
|
Отправлено: 11:15, 29-01-2009 |
Сообщения: 53500
|
Профиль | Отправить PM | Цитировать Цитата Николя:
|
|
Отправлено: 11:34, 29-01-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Извините, сразу не мог отвечать - не было связи...
Для пробы я сделал простой батник, его содержимое Echo off If Exist Out\Flag.txt ( For /F "Delims=" %%I In (Out\Flag.txt) Do Set BmpPath=%%~I Xcopy "%BmpPath%\*.bmp" F:\Image\ /y ) В файле Flag.txt одна строка C:\Image в этом каталоге есть файлы bmp. На диске F тоже есть каталог Image, куда пробую скопировать файлы. При запуска батника на экран выводит Не найден файл: *.bmp Скопировано файлов: 0 А можно ли как-то посмотреть - что же получает в переменную BmpPath ? |
Отправлено: 14:20, 29-01-2009 | #3 |
Сообщения: 53500
|
Профиль | Отправить PM | Цитировать Николя, прошу прощения, так работает:
EnableDelayedExpansion - связывание времени выполнения нужно, чтобы значение переменной BmpPath не терялось. |
Отправлено: 14:28, 29-01-2009 | #4 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Да, спасибо огромное, так работает!
Поясните, если не трудно... А эт добавленная строка не повлияет на выполнение других команд, которые есть у меня в рабочем батнике? Там у меня есть другое копирование, запуск приложения... В принципе, ничего сложного там нет, но в реале проверить не могу. И она должна быть именно в начале файла или же перед строкой выполнения этого копирования? |
|
Отправлено: 14:42, 29-01-2009 | #5 |
Сообщения: 53500
|
Профиль | Отправить PM | Цитировать Цитата Николя:
Цитата Николя:
|
||
Отправлено: 15:13, 29-01-2009 | #6 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Спасибо еще раз! Очень помогли. Уважаю специалистов.
|
Отправлено: 15:15, 29-01-2009 | #7 |
Пользователь Сообщения: 66
|
Профиль | Отправить PM | Цитировать @echo on
cd /d %ALLUSERSPROFILE% cd .. dir /b >%temp%\users.temp Получается список учеток: допустим 3 All Users - (ALLUSERSPROFILE) Администратор - (USERPROFILE) Петя Первые 2 можно опреледить как системные переменные ИНТЕРЕСУЕТ ПУТЬ К ТРЕТЬЕЙ учетке или сколько их там может быть затем необходимо по очереди подставить путь учетки как переменную в cmd, скажем для копирования данных из учетки в иное место, вроде этого XCOPY /S /E /Y "%USERPROFILE%\Рабочий стол" "D:\_Recover\Documents and Settings\%USERNAME%\Рабочий стол\" по окончанию копирования, подставить другое значение (Путь) и продолжить Иными словами, как определить как системную переменную путь к папке профиля не активного юзера. |
Отправлено: 17:24, 20-03-2009 | #8 |
Сообщения: 53500
|
Профиль | Отправить PM | Цитировать sushnyak, примерно так:
@Echo Off SetLocal EnableExtensions CD /D "%AllUsersProfile%" CD .. For /F "Delims=" %%I In ('Dir /B /AD-S-H ^| FindStr /V /B /I /C:"All Users"') Do ( MD "D:\_Recover\Documents and Settings\%%I\Рабочий стол" XCopy "%%I\Рабочий стол" "D:\_Recover\Documents and Settings\%%I\Рабочий стол" /E /H /Y ) |
Отправлено: 18:16, 20-03-2009 | #9 |
Пользователь Сообщения: 66
|
Профиль | Отправить PM | Цитировать Petya V4sechkin,
Хорошо, пользователей находит, каталог создает, а как быть если заданий на копирование много больше, перед каждым новой задачей нужно снова подставлять твой скрипт ? XCOPY /S /E /Y "%USERPROFILE%\Рабочий стол" "D:\_Recover\Documents and Settings\%USERNAME%\Рабочий стол\" XCOPY /S /E /Y "%USERPROFILE%\Мои документы" "D:\_Recover\Documents and Settings\%USERNAME%\Мои документы\" XCOPY /S /E /Y "%USERPROFILE%\Избранное" "D:\_Recover\Documents and Settings\%USERNAME%\Избранное\" XCOPY /S /Y "%USERPROFILE%\Local Settings\Application Data\Microsoft\*.bmp" "D:\_Recover\Documents and Settings\%USERNAME%\Local Settings\Application Data\Microsoft\" XCOPY /S /Y "%APPDATA%\Adobe" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Adobe\" XCOPY /S /Y "%APPDATA%\Canopus\EDIUS" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Canopus\EDIUS\" XCOPY /S /Y "%APPDATA%\Canopus\ProCoder 2\User Presets\*.cpf" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Canopus\ProCoder 2\User Presets\" XCOPY /S /Y "%APPDATA%\Sony" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Sony\" XCOPY /S /Y "%APPDATA%\Opera" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Opera\" XCOPY /S /Y "%APPDATA%\Mozilla" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Mozilla\" XCOPY /S /Y "%APPDATA%\utorrent" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\utorrent\" XCOPY /S /Y "%APPDATA%\BSplayer PRO" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\BSplayer PRO\" XCOPY /S /Y "%APPDATA%\Gracebyte Software" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Gracebyte Software\" XCOPY /S /Y "%APPDATA%\VyPRESS" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\VyPRESS\" XCOPY /S /Y "%APPDATA%\Radmin" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Radmin\" XCOPY /S /Y "%APPDATA%\AutoPowerOn" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\AutoPowerOn\" XCOPY /S /Y "%APPDATA%\Download Master" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Download Master\" Это только то что есть на сейчас, в будущем список увеличится, как тут быть ? |
Отправлено: 18:51, 20-03-2009 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] StringRegExpReplace: Конверт. строки атрибутов файла в формат Attrib.exe | Creat0R | AutoIt | 6 | 14-09-2009 22:52 | |
[решено] Удаление строки из файла | gregaz | AutoIt | 2 | 16-07-2009 18:46 | |
[решено] Чтение текстового файла с неизвестным именем | ZeroCrash | AutoIt | 4 | 01-07-2009 19:03 | |
[решено] Чтение-запись битого файла | vit777 | Видео и аудио: обработка и кодирование | 3 | 19-12-2007 09:45 | |
Shell. Чтение текстового файла по строкам. | Delphin911 | Общий по Linux | 11 | 07-04-2005 17:58 |
|