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

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

Ответить
Настройки темы
CMD/BAT - [решено] Работа команды For

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


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

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


Так работает
for /f "usebackq eol=W delims=e" %%A in ("%Temp%\ggg.txt") do @echo %%A
Так не работает
for /f "usebackq eol=W delims=e" %%A in ("%Temp%\Burns.Mp3") do @echo %%A
Как думаю причиной является наличие нулевых байтов в последнем файле. Кто-нибудь знает как это победить? А вообще-то задача проверить mp3-тег в файле.

Отправлено: 22:11, 07-04-2009

 

Аватара для gora

Ушёл из жизни


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

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


Цитата Devils0411:
Не выводит на экран переменную. Скажите, где ошибка? »
Цитата Devils0411:
Код: Выделить весь код
set tdir=%ini:~0,-1%
»
Потому что не определена переменная ini.
PS
Переменная tdir определяется в цикле и, для ее вывода на экран в цикле, она должна быть не в знаках процента, а в знаках восклицания
Код: Выделить весь код
Echo !tdir!
А в начале файла должна быть строка:
Код: Выделить весь код
SetLocal enabledelayedexpansion

Последний раз редактировалось gora, 24-07-2010 в 09:13.


Отправлено: 09:03, 24-07-2010 | #11



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

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


Аватара для Devils0411

Ветеран


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

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


gora, но ведь в переменную tdir записывается переменная ini с уменьшением на один символ с права.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 11:27, 24-07-2010 | #12


Аватара для gora

Ушёл из жизни


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

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


Цитата Devils0411:
но ведь в переменную tdir записывается переменная ini с уменьшением на один символ с права »
Еще раз повторю:
Цитата gora:
что не определена переменная ini. »
Если переменная в батнике не определена - значит она "пустая" (нет ее). Сколько от нее не отрезай все равно в tdir ни чего не будет добавлено и она тоже будет "пустая" и вывести ее на экран консоли не удастся!

Отправлено: 11:38, 24-07-2010 | #13


Аватара для Devils0411

Ветеран


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

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


ее нужно определить до цикла или внутри?

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 12:08, 24-07-2010 | #14


Аватара для gora

Ушёл из жизни


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

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


Можно до цикла, тогда можно использовать %ini%, а если в цикле, то нужно будет использовать !ini! и строку SetLocal enabledelayedexpansion в начале файла (писал уже выше).
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:18, 24-07-2010 | #15


Аватара для Devils0411

Ветеран


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

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


Спасибо за помощь. Решил все-таки в цикле использовать.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 12:34, 24-07-2010 | #16


Аватара для Devils0411

Ветеран


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

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


Все же проблема осталась...
Код: Выделить весь код
@Echo off 
SetLocal enabledelayedexpansion
For %%a in ( "%ProgramFiles(x86)%\test4U\run.exe" "%ProgramFiles%\test4U\run.exe" ) Do (
if exist %%a ( 
set ini=%%~dpa 
set tdir=!ini:~0,-1!
 Echo !tdir! 
pause 
) Else ( 
goto end) 
)
:end 
Echo ничего нет 
pause
Почему то в расчет берется первое множество. Т.е. если в первом множестве не был найден файл, то просто переходит в метке :end, и не проверяет второе множество.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 17:23, 24-07-2010 | #17


Аватара для gora

Ушёл из жизни


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

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


Попробуйте так:
Код: Выделить весь код
@Echo off 
SetLocal enabledelayedexpansion
For %%a in ("%ProgramFiles(x86)%\test4U\run.exe" "%ProgramFiles%\test4U\run.exe") Do (
	if exist %%a ( 
		set ini=%%~dpa 
		set tdir=!ini:~0,-1!
		Echo !tdir! 
	)
)
If Not Defined tdir Echo ничего нет
pause

Отправлено: 17:34, 24-07-2010 | #18



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Аналог команды tail в Unix DimaDivine Скриптовые языки администрирования Windows 5 23-07-2009 01:57
CMD/BAT - [решено] удаленное выполнение команды Diver1 Скриптовые языки администрирования Windows 2 20-03-2009 10:39
Разное - все команды, загрузка программ и работа внутри программ - с задержкой 1/2сек NeuD Microsoft Windows 2000/XP 20 03-07-2008 19:15
[решено] Команды Винды cooller Microsoft Windows NT/2000/2003 2 04-10-2007 15:43
[решено] Команды на создание VPN Butunin Klim Microsoft Windows NT/2000/2003 1 20-07-2007 11:22




 
Переход