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

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » команда if

Ответить
Настройки темы
команда if

Старожил


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

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


Изменения
Автор: e9990638
Дата: 11-10-2015
Привет всем.
Помогите правильно написать команду для cmd-файла. В данном случае с IF.
Моя команда (установить обновления в текущем каталоге с подпапками, вывести текущую информацию, и пропустить файл (не делать с ним ничего) e999-64.MSP

for /R . %%f in (*.msp) do (
if %%f NEQ e999-64.MSP (
echo Processing "%%f" Update...
msiexec /p %%f /qn /norestart
)
)

Выполняется вроде бы все, кроме if.

Отправлено: 20:30, 07-08-2013

 


Moderator


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

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


e9990638, исправьте строку:
Код: Выделить весь код
if /i %%~nxf NEQ e999-64.MSP (
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:53, 07-08-2013 | #2



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

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


Старожил


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

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


Petya V4sechkin, Спасибо.

P.S. А какой будет код, если файлов будет больше.
Например: e999-64.MSP; e999-32.MSP; e999-17.MSP.

Спасибо за ответ.

Отправлено: 23:15, 07-08-2013 | #3


Ветеран


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

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


Например, так (не проверялось):
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /r "." %%i in (*.msp) do (
	set /a bFound = 0
	
	for %%j in ("e999-64.MSP" "e999-32.MSP" "e999-17.MSP") do if /i "%%~j" equ "%%~i" set /a bFound = 1
	
	if !bFound! neq 1 (
		echo Processing "%%~i" Update...
		msiexec.exe /p "%%~i" /qn /norestart
	)
)

endlocal
exit /b 0

Отправлено: 23:31, 07-08-2013 | #4


Старожил


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

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


Iska, не работает.

Отправлено: 15:13, 08-08-2013 | #5


Ветеран


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

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


Цитата Iska:
Например, так (не проверялось): »
Цитата e9990638:
Iska, не работает. »
Проверил. Исправьте одну строку так:
Код: Выделить весь код
	for %%j in ("e999-64.MSP" "e999-32.MSP" "e999-17.MSP") do if /i "%%~j" equ "%%~nxi" set /a bFound = 1

Отправлено: 18:01, 08-08-2013 | #6


Старожил


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

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


Iska, Спасибо, все работает.

Отправлено: 20:49, 08-08-2013 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » команда if

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Команда Выполнить Кощей Хочу все знать 42 21-04-2013 09:56
Интернет - команда route -p stonecold Сетевые технологии 3 12-10-2010 17:15
[решено] Команда If с $ Centrinar AutoIt 1 12-03-2010 11:52
Команда в GPO peyote Microsoft Windows NT/2000/2003 7 07-11-2007 20:59
команда gh6 Microsoft Windows NT/2000/2003 1 17-01-2007 13:19




 
Переход