PDA

Показать полную графическую версию : Запуск файла(находится на сетевом ресурсе) по маске.


rango13
11-09-2019, 12:23
Всем привет!

Есть установщик программы формата *.exe, расположенный по сетевому пути:
\\fileserver.domain.com\distr\pdf-tools\pdf24-creator-9.3.exe

При обновлении этого установщика меняется часть его имени, где указана версия.
Т.е., к примеру:
- было pdf24-creator-9.3.exe
- стало pdf24-creator-9.5.exe

Есть cmd-файл, который запускает установку его в SILENT-режиме.

Вопрос: как запускать файл установки с данного сетевого ресурса так, чтобы не было привязки к номеру версии?
Другими словами необходимо запускать тот файл, имя которого начинается с "pdf*"

Пробовал скопировать файл на диск D:\ и запустить его оттуда следующим скриптом(с расширением .cmd):
setlocal EnableDelayedExpansion
Set FDir="d:\"
Set Maska="pdf*"
FOR /R %FDir% %%i IN (%Maska%) DO Echo %%i

но появляется ошибка:
%%i was unexpected at this time.

DJ Mogarych
11-09-2019, 14:00
Powershell:
& "(\\fileserver.domain.com\distr\pdf-tools\pdf*.exe).fullname" /silent

megaloman
11-09-2019, 15:55
@Echo Off
Set "BoxDistr=\\fileserver.domain.com\distr\pdf-tools"
Set "Mask=Pdf*.exe"
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxDistr%\%Mask%" /B /A:-D /O:D`) DO Set "Exe=%BoxDistr%\%%f"
Echo Start " " "%Exe%"
Exit /B
Для боевого использования Echo удалить

rango13
11-09-2019, 17:52
& "(\\fileserver.domain.com\distr\pdf-tools\pdf*.exe).fullname" /silent »
Как же у Powershell это сделано элегантно.

Iska
11-09-2019, 20:02
Как же у Powershell это сделано элегантно. »
Когда столкнётесь с малопредсказуемым поведением (и, не дай бог, с катастрофическими последствиями такого поведения) — сразу забудете про «элегантность», построенную на многочисленных и не всегда вразумительных умолчаниях.




© OSzone.net 2001-2012