Можно ли запретить выполнение командного файла Windows двойным щелчком? - PullRequest
0 голосов
/ 08 февраля 2019

Можно ли настроить файл Windows .BAT таким образом, чтобы его можно было выполнять при вызове из CMD, но не запускать, когда кто-то дважды щелкает файл?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Хотите попробовать эту кодировку и предложить эту работу ...

В основном используйте findstr, чтобы проверить, соответствует ли значение переменной %cmdcmdline% этому .cmd или .bat, если это возвращает положительно, то goto :eof (выход), но если нет, то run your code...

  @echo off & cd /d %~dp0" 

  echo/%cmdcmdline% | findstr /i "\.cmd \.bat" 2>nul && ( 

    title... by click.. & echo/%cmdcmdline% | findstr "%0" 

    echo/ bat: "%0" running by click

    timeout /t 5 /nobreak>nul & goto :eof

    ) || (

    title... by command line.. && echo/%cmdcmdline%| findstr "%0" 

    echo/ bat: "%0" running by command line 

    timeout /t 5 /nobreak>nul & goto :run_code

   )

  :run_code

  echo/ your code enter here

  ::  ....

  goto :eof

1st by click & 2nd by command line

0 голосов
/ 08 февраля 2019

Переменная среды %cmdcmdline% содержит командную строку, используемую для запуска CMD.exe.Если пакетный файл был запущен с помощью щелчка в проводнике или на рабочем столе, он будет иметь следующий вид:

C:\Path\To\cmd.exe /c ""c:\path\to\batch\file.bat" "

Полный путь к пакетному файлу также можно получить как %~f0 внутри самого пакетного файла, чтобысравнить с этой переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...