阻止用户意外执行.bat文件

时间:2018-09-29 18:32:36

标签: windows batch-file scheduled-tasks

我们的服务器中有大量的bat文件,它们是使用任务计划程序计划的。有时,用户无需右键单击对其进行编辑,而是通过双击它来执行它们,从而触发过程。

  
      
  1. 我只能更改批处理文件的双击属性吗?就像双击执行一样,双击则什么也不做。
  2.   
  3. 当用户尝试直接执行而不是使用命令行时,是否有任何批处理命令提示用户?
  4.   

3 个答案:

答案 0 :(得分:2)

我遇到了类似的情况,当我在脚本TIMEOUT 10的开头添加批处理时,该批处理在10秒后开始,因此,如果有人不小心启动了该批处理,将有时间关闭窗口而不运行。 / p>

我不建议这样做,但是您可以将注册表中的.bat文件的相关应用程序从注册表的"%1" %*更改为nothing,将(默认)值从HKEY_CLASSES_ROOT\batfile\shell\open\command更改为services.AddScoped<AdminBuilder>()

我肯定会选择第一个选项。

答案 1 :(得分:0)

    @echo off &::in_con.bat filename and args
    setlocal
    set "_is.c=0"
    for /f "tokens=*" %%# in ("%ComSpec%") do for /f "tokens=1-2 delims= " %%c in ('echo %CmdCmdLine%') do if /i "%%~nc"=="%%~n#" if /i "%%~d"=="/c" set "_is.c=1"
    rem if running by click open in notepad
    if "%_is.c%"=="1" if exist "%~1" notepad "%~1"
    rem if running in console pass it throuth
    endlocal & if "%_is.c%"=="0" cmd /c %*
    goto :eof

始终通过cmd /c in_con.bat运行.bat

答案 2 :(得分:0)

为什么不将它们全部重命名为.txt并在调度程序中将文件复制到.bat|.cmd文件并执行。世界上最好的。