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

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

Ответить
Настройки темы
CMD/BAT - [решено] Задавать значения и путь в текстовом файле

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


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

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


Как сделать, чтобы путь и разные переменные брались с текстового файла. Например в теле программы

del C:\cmd\log.txt (Этот путь брался с файла)
set a=17 (Это число тоже бралось с файла)

del (C:\del.txt)
set a=(C:\itog.log)

какими командами это можно осуществить

Отправлено: 02:02, 13-04-2011

 

Googler


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

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


Код: Выделить весь код
set /p $v1=<c:\del.txt
set /p $v2=<c:\itog.log

del %$v1%
set a=%$v2%
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:42, 13-04-2011 | #2



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

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


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


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

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


А как сделать чтобы переменная бралась с первой строки в текстовом файле, а вторая со второй, третья с третьей?

Отправлено: 00:41, 16-04-2011 | #3


Ветеран


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

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


white155, делать сие весьма неудобно (ибо где три, там и четыре, и пять), хотя и можно.

Хранение во внешнем файле и разбор посредством «for /f» обычно применяют для однотипного набора данных, например, имён машин, с которыми надо проделать однотипную операцию: очередное значение извлекается, подставляется в переменную, выполняется некая процедура, затем эти действия повторяются.

Возможно, для Вашей задачи лучше использовать банальные параметры пакетного файла:
читать дальше »
0001.cmd
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sVar1=%~1
set sVar2=%~2
set sVar3=%~3
set sVar4=%~4
set sVar5=%~5

echo sVar1=[%sVar1%]
echo sVar2=[%sVar2%]
echo sVar3=[%sVar3%]
echo sVar4=[%sVar4%]
echo sVar5=[%sVar5%]

endlocal
exit /b 0
наподобие:
Код: Выделить весь код
0001.cmd 0001 0002 "00 03" "0004" "00 00 05"
Результат:
Цитата:
Код: Выделить весь код
sVar1=[0001]
sVar2=[0002]
sVar3=[00 03]
sVar4=[0004]
sVar5=[00 00 05]
Впрочем, если допустимо условиями задачи — можно попытаться использовать псевдонумерацию переменных:
читать дальше »
0002.cmd
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sInFile=.\0001.txt
set /a iCounter = 0

for /f "usebackq delims=" %%i in ("%sInFile%") do (
	set /a iCounter += 1
	set sVar!iCounter!=%%i
)

for /l %%i in (1, 1, %iCounter%) do echo sVar%%i=[!sVar%%i!]

endlocal
exit /b 0
0001.txt, лежащий в текущем каталоге при вызове пакетного файла 0002.cmd:
Код: Выделить весь код
Hello World
Мама мыла раму
OSZone.Net
Результат:
Цитата:
Код: Выделить весь код
sVar1=[Hello World]
sVar2=[Мама мыла раму]
sVar3=[OSZone.Net]

Ещё один вариант — держать как имена переменных, так и сами значения в текстовом файле, наподобие:
читать дальше »
0002.txt
Код: Выделить весь код
Var1=Hello World
MyVar=Мама мыла раму
LastVar=OSZone.Net
но при этом пакетный файл:
0003.cmd
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sInFile=.\0002.txt

for /f "usebackq tokens=1,2 delims==" %%i in ("%sInFile%") do (
	set %%i=%%j
)

echo Var1   =[%Var1%]
echo MyVar  =[%MyVar%]
echo LastVar=[%LastVar%]

endlocal
exit /b 0
должен «знать» имена переменных.

Результат:
Цитата:
Код: Выделить весь код
Var1   =[Hello World]
MyVar  =[Мама мыла раму]
LastVar=[OSZone.Net]
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:00, 16-04-2011 | #4


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


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

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


спасибо большое

Отправлено: 14:10, 16-04-2011 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Подсчет количества целых чисел в текстовом файле Hardip Скриптовые языки администрирования Windows 5 08-12-2010 14:49
CMD/BAT - [решено] Удалить в текстовом файле по условию AlexVong Скриптовые языки администрирования Windows 1 21-11-2010 11:53
[решено] Найти и заменить в текстовом файле. Как? Pozia AutoIt 15 11-03-2010 19:12
подсчёт слов в текстовом файле bakatum Хочу все знать 4 22-01-2010 21:10
Теория - Можно ли достать значения цены с графика, получив их в текстовом файле? evg64 Программирование и базы данных 1 26-10-2009 07:26




 
Переход