是否可以通过双击阻止Windows批处理文件执行?

时间:2019-02-08 20:35:27

标签: windows batch-file

是否可以通过这样的方式设置Windows .BAT文件,以便从CMD调用时可以执行,但是当有人双击该文件时无法运行?

2 个答案:

答案 0 :(得分:7)

环境变量%cmdcmdline%包含用于启动CMD.exe的命令行。如果批处理文件是通过单击资源管理器或在桌面上启动的,它将是:

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

批处理文件的完整路径也可以在批处理文件本身中以%~f0的形式访问以与该变量进行比较。

答案 1 :(得分:2)

您想尝试一下此编码建议执行此操作吗?

基本上,使用findstr检查变量 %cmdcmdline% 的值是否与此 .cmd .bat < / strong>,如果返回的是肯定值,则 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