Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Запуск .exe файла без учета имени (http://forum.oszone.net/showthread.php?t=321753)

alexfeel30 15-12-2016 16:04 2695961

Запуск .exe файла без учета имени
 
Доброго времени суток! Как сделать батник чтобы запускался exe файл, без учета имени exe файла, оно меняется, bat и exe находятся в одной папке.
Заранее всем откликнувшимся спасибо.

Iska 15-12-2016 16:22 2695967

Код:

@echo off

for /f "usebackq delims=" %%i in (
        `2^>nul dir /b /a:-d "%~dp0*.exe"`
) do "%~dp0%%i"

— запустит все исполняемые exe-файлы, которые найдёт рядом с пакетным файлом.

alexfeel30 15-12-2016 16:47 2695971

Огромное спасибо, работает.

alpap 16-12-2016 02:18 2696054

еще можно так:
Код:

@echo off
dir/a-d/b "*.exe"|set/p f=^& cmd/v/c !f!
exit

запустит первый найденный

Iska 16-12-2016 03:28 2696057

alpap, только это не «bat и exe находятся в одной папке», а в текущем каталоге. И кавычки же на случай пробельных символов в имени файла.

alpap 16-12-2016 04:09 2696060

Iska,
кавычки надо, пропустил, а
Цитата:

Цитата Iska
не «bat и exe находятся в одной папке», а в текущем каталоге »

не понял. Во-первых по ТЗ именно - в одной папке, а во-вторых, если bat и exe находятся в одной папке, есть разница текущий он или нет, по-моему будет иметь смысл только вариант запуска bat, с добавлением строки перехода в каталог. если запуск не непосредственный.

Georgio 16-12-2016 06:11 2696066

Цитата:

Цитата Iska
И кавычки же на случай пробельных символов в имени файла. »


Одна пара кавычек не поможет:(, нужны две пары или хотя бы полторы:):
Код:

dir/a-d/b "*.exe"| set/p f=^& cmd/v/c ""!f!""
;
Код:

dir/a-d/b "*.exe"| set/p f=^& cmd/v/c ""!f!"
.

Чтобы пользоваться одной парой кавычек, надо писать так:
Код:

dir/a-d/b "*.exe"| cmd/v/c set/p f=^& "!f!"
.

alpap 16-12-2016 12:20 2696140

Цитата:

Цитата Georgio
Одна пара кавычек не поможет »

почему?
Файл 142150

alpap 16-12-2016 12:31 2696144

если убрать экран, видно что кавычки добавляются как положено:
Файл 142151
а при такой команде:
Код:

dir/a-d/b "*.exe"| set/p f=& cmd/v/c "!f!"
отработает и без экрана

Georgio 16-12-2016 13:13 2696159

alpap, у Вас запускается не «calc calc.exe», а «C:\Windows\System32\calc.exe»:(:).

Переименуйте EXE-файл в «My Program.exe», и всё увидите сами.

Iska 16-12-2016 15:09 2696199

Цитата:

Цитата Georgio
Одна пара кавычек не поможет, нужны две пары или хотя бы полторы: »

Логика там вообще замечательная. Уж сколько в своё время крови попортила.

Цитата:

Цитата Georgio
alpap, у Вас запускается не «calc calc.exe», а «C:\Windows\System32\calc.exe». »

Если бы вместо Калькулятора использовался Блокнот, то даже при таком: «notepad notepad.exe» переименовании сразу бы было видно, что что-то пошло не так :).


Цитата:

Цитата alpap
а
Цитата:

Цитата Iska
не «bat и exe находятся в одной папке», а в текущем каталоге »

не понял. »

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


Время: 11:57.

Время: 11:57.
© OSzone.net 2001-