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

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

ufooo 12-05-2015 23:05 2506610

Не запускать программу пока не будет найден файл
 
Как связать два кода чтобы они срабатывали последовательно. Вариант такой: Поиск программы: (Winword.exe), и не открывать ее пока не будет отыскан файл, (MastersPc.doc).
Код:

@Echo off
setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\Winword.exe" 2^>Nul') Do start "" "%%a")

setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\MastersPc.doc" 2^>Nul') Do start "" "%%a")
Exit /b 0


iccup.platoon@vk 12-05-2015 23:41 2506628

Код:

@Echo off
setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\Winword.exe" 2^>Nul') Do set temp1=%%a)
endlocal & set proga=%temp1%

setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\MastersPc.doc" 2^>Nul') Do set temp2=%%a)
endlocal & set file=%temp2%
start "" "%proga%"
start "" "%file%"
Exit /b 0

Как то так...

Iska 12-05-2015 23:47 2506630

Цитата:

Цитата ufooo
Как связать два кода чтобы они срабатывали последовательно. Вариант такой: Поиск программы: (Winword.exe), и не открывать ее пока не будет отыскан файл, (MastersPc.doc). »

Вам не нужно искать «Winword.exe». Достаточно найти документ «MastersPc.doc» и выполнить для него «ShellExecute()» посредством «start»:
Код:

start "" "Путь\MastersPc.doc"

iccup.platoon@vk 12-05-2015 23:53 2506632

Случайно написал...

ufooo 13-05-2015 00:01 2506638

Код открывает (.doc) файл "Woрдом" даже если направить ево на (Foxit Reader.exe), и после выполнении выбрасывает такое окно ошибки.

После нажатия на (Ok) документ открывается.

iccup.platoon@vk 13-05-2015 00:08 2506644

Для интереса, грубо обрезал код, оставив:
Код:

setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\123.doc" 2^>Nul') Do set temp2=%%a)
endlocal & set file=%temp2%
start "" "%file%"
Exit /b 0

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

Iska 13-05-2015 00:23 2506660

Цитата:

Цитата ufooo
Код открывает (.doc) файл "Woрдом" »

Естественно, если указанное расширение сопоставлено файловому типу «Документ Microsoft Word», а тот, в свою очередь, ассоциирован с исполняемым файлом «WinWord.exe».

Цитата:

Цитата ufooo
даже если направить ево на (Foxit Reader.exe) »

Переведите на русский — как можно направить код на «Foxit Reader.exe». Я не смог понять Вашей фразы.

iccup.platoon@vk 13-05-2015 00:32 2506664

Iska, я думаю он хочет что-то вроде
Код:

@Echo off
setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\Winword.exe" 2^>Nul') Do set temp1=%%a)
endlocal & set proga=%temp1%

setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\MastersPc.doc" 2^>Nul') Do set temp2=%%a)
endlocal & set file=%temp2%
"%proga%" "%file%"
Exit /b 0


ufooo 13-05-2015 00:51 2506668

Так работает.
Код:

@Echo off
setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\Winword.exe" 2^>Nul') Do set temp1=%%a)
endlocal & set proga=%temp1%

setlocal enableextensions enabledelayedexpansion
For %%i In (c d e f g h i j k l m n o p q r s t u v w x y z) Do (
For /F "Delims=" %%a In ('DIR /B/S/A-D "%%i:\MastersPc.doc" 2^>Nul') Do set temp2=%%a)
endlocal & set file=%temp2%
"%proga%" "%file%"
Exit /b 0



Время: 03:15.

Время: 03:15.
© OSzone.net 2001-