zoukankan      html  css  js  c++  java
  • hosts appender 2.0

    main.bat

      1 @echo off
      2 color 0a
      3 title hosts appender 2.0
      4 
      5 SETLOCAL ENABLEDELAYEDEXPANSION
      6 set /a RTN_VAL=0
      7 set ORIGIN_HOSTS=C:Windowssystem32driversetchosts
      8 set FILE_HOSTS=hosts.tmp
      9 set FOLDER_HOSTS=hosts.tmp.1
     10 
     11 if not exist "%ORIGIN_HOSTS%" (
     12     echo Not exist hosts.
     13     goto NORMAL_EXIT
     14 )
     15 
     16 set /a RTN_VAL=0
     17 cd /d "%ORIGIN_HOSTS%" && set /a RTN_VAL=1
     18 if !RTN_VAL! equ 1 (
     19     echo Not a hosts file.
     20     goto NORMAL_EXIT
     21 )
     22 cls
     23 
     24 if "%TEMP%" neq "" (
     25     cd /d "%TEMP%"
     26     set /a RTN_VAL=0
     27     cd . > "%FILE_HOSTS%" || set /a RTN_VAL=1
     28     if !RTN_VAL! equ 1 (
     29         cls
     30         echo Can not access to "%FILE_HOSTS%".
     31         goto NORMAL_EXIT
     32     )
     33 ) else (
     34     echo Environment Variables - TEMP is empty.
     35     goto NORMAL_EXIT
     36 )
     37 
     38 :INPUT_COMMENTS
     39 set /p COMMENTS=Enter comments: 
     40 if "%COMMENTS%" equ "" (
     41     goto INPUT_COMMENTS
     42 )
     43 :INPUT_IP_ADDRESS
     44 set /p IP_ADDRESS=Enter IP address: 
     45 if "%IP_ADDRESS%" equ "" (
     46     goto INPUT_IP_ADDRESS
     47 )
     48 :INPUT_HOST_NAMES
     49 set /p HOST_NAMES=Enter host names: 
     50 if "%HOST_NAMES%" equ "" (
     51     goto INPUT_HOST_NAMES
     52 )
     53 
     54 >> "%FILE_HOSTS%" echo.
     55 >> "%FILE_HOSTS%" echo # %COMMENTS%
     56 >> "%FILE_HOSTS%" echo     %IP_ADDRESS%    %HOST_NAMES%
     57 
     58 cls
     59 echo Preview: 
     60 type "%FILE_HOSTS%"
     61 echo.
     62 
     63 choice /c "Yn" /cs /m "Do you want to append?"
     64 if %ERRORLEVEL% equ 1 (
     65     set /a RTN_VAL=0
     66     type "%FILE_HOSTS%" >> "%ORIGIN_HOSTS%" || set /a RTN_VAL=1
     67     if !RTN_VAL! equ 0 (
     68         echo Completed successfully.
     69         goto NORMAL_EXIT
     70     ) else (
     71         cls
     72         if exist "%FOLDER_HOSTS%" (
     73             rmdir /s /q "%FOLDER_HOSTS%"
     74         )
     75         mkdir "%FOLDER_HOSTS%"
     76         type "%ORIGIN_HOSTS%" > "%FOLDER_HOSTS%hosts"
     77         type "%FILE_HOSTS%" >> "%FOLDER_HOSTS%hosts"
     78 
     79         set ORIGIN_ATTR=
     80         for /f "tokens=*" %%I in ("%ORIGIN_HOSTS%") do (
     81             set ORIGIN_ATTR=%%~aI
     82         )
     83         if "!ORIGIN_ATTR!" neq "" (
     84             set /a RTN_VAL=0
     85             for /f "tokens=1* delims=-" %%m in ("!ORIGIN_ATTR!") do (
     86                 set ORIGIN_ATTR=%%m
     87                 set /a RTN_VAL=1
     88             )
     89             if !RTN_VAL! equ 0 (
     90                 set ORIGIN_ATTR=
     91             )
     92         ) else (
     93             echo Can not obtain file attributes.
     94             goto NORMAL_EXIT
     95         )
     96         attrib -r -a -s -h -i "%FOLDER_HOSTS%hosts"
     97         set SURPLUS=!ORIGIN_ATTR!
     98         set STR_ATTR=
     99         :PROCESS_ATTR
    100         for /f "tokens=*" %%m in ("!SURPLUS!") do (
    101             set STR_ATTR=!STR_ATTR!+!SURPLUS:~0,1! 
    102             set SURPLUS=!SURPLUS:~1!
    103         )
    104         if "!SURPLUS!" neq "" (
    105             goto PROCESS_ATTR
    106         )
    107         if "!STR_ATTR!" neq "" (
    108             rem No 'I'.
    109             attrib !STR_ATTR!"%FOLDER_HOSTS%hosts"
    110         )
    111 
    112         set /a RTN_VAL=0
    113         xcopy /y /q /h /r /k "%FOLDER_HOSTS%hosts" "%ORIGIN_HOSTS%" || set /a RTN_VAL=1
    114         if !RTN_VAL! equ 0 (
    115             cls
    116             echo Completed successfully.
    117             goto NORMAL_EXIT
    118         ) else (
    119             echo Failed.
    120             goto NORMAL_EXIT
    121         )
    122     )
    123 )
    124 echo. Goodbye.
    125 
    126 :NORMAL_EXIT
    127 pause
    128 exit

    附件1

  • 相关阅读:
    【OpenCV学习】多通道矩阵的赋值和取值
    使用BackGroundWorker在多线程中访问Winform控件,当不是创建这个控件的线程访问控件时,把线程调整到是创建这个控件的线程去控制。,代码为红色的
    创建Windows服务程序实现定时操作
    新建和发布Windows服务的几个常见问题
    关于程序卡时解决方案
    c#中使用多线程访问winform中控件的若干问题 解决线程间操作无效: 从不是创建控件的线程访问它
    winform安装项目、安装包的制作、部署
    C# winform 使用进度条(两种形式)
    WinForm如何控制ShowDialog()的返回值,并且可以判断是否会弹出主窗体
    收藏几个好用的webservice
  • 原文地址:https://www.cnblogs.com/rms365/p/10936362.html
Copyright © 2011-2022 走看看