PDA

Показать полную графическую версию : [решено] Не запускать программу пока не будет найден файл


ufooo
12-05-2015, 23:05
Как связать два кода чтобы они срабатывали последовательно. Вариант такой: Поиск программы: (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
@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
Как связать два кода чтобы они срабатывали последовательно. Вариант такой: Поиск программы: (Winword.exe), и не открывать ее пока не будет отыскан файл, (MastersPc.doc). »
Вам не нужно искать «Winword.exe». Достаточно найти документ «MastersPc.doc» и выполнить для него «ShellExecute()» посредством «start»:
start "" "Путь\MastersPc.doc"

iccup.platoon@vk
12-05-2015, 23:53
Случайно написал...

ufooo
13-05-2015, 00:01
Код открывает (.doc) файл "Woрдом" даже если направить ево на (Foxit Reader.exe), и после выполнении выбрасывает такое окно ошибки.
http://s019.radikal.ru/i643/1505/2f/726e831c7be6t.jpg (http://radikal.ru/fp/e229876f29f8432499c6914bcfa4698e)
После нажатия на (Ok) документ открывается.

iccup.platoon@vk
13-05-2015, 00:08
Для интереса, грубо обрезал код, оставив:

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

До этого, конечно, создав искомый файл на диске С. Полет нормальный.
Кстати, а вдруг есть проблема? (https://support.microsoft.com/ru-ru/kb/827732/ru)

Iska
13-05-2015, 00:23
Код открывает (.doc) файл "Woрдом" »
Естественно, если указанное расширение сопоставлено файловому типу «Документ Microsoft Word», а тот, в свою очередь, ассоциирован с исполняемым файлом «WinWord.exe».

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

iccup.platoon@vk
13-05-2015, 00:32
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
Так работает.
@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




© OSzone.net 2001-2012