2017-06-19 69 views
1

如何创建bat文件以使用管理员打开特定文件(主机),编辑并保存?如何使用管理员打开文件,使用bat编辑和保存

我尝试过,但它不工作:

echo C:\Windows\System32\drivers\etc\hosts >> 192.168.100.9  dev.rw1.local 
echo C:\Windows\System32\drivers\etc\hosts >> 192.168.100.10  wiki.rw1.local 

我尝试过用它直接在CMD,并在CMD oppened为管理员和没有工作

+1

你的目的是什么?您是否想编辑hosts文件并在其中添加一些行并将其保存为批处理文件? – Hackoo

+0

你可以发布你试过自己编写的批处理文件吗? – 2017-06-19 13:09:35

+0

你有什么试过的,你试过的怎么都失败了?理想情况下,您应该提供您尝试过的[最小,完整和可验证的示例](https://stackoverflow.com/help/mcve),并包含有关失败的具体信息,包含错误消息和/或错误的输出。 SO不是代码写入服务;最好的问题是提供有用信息的问题,以便那些回答问题的人可以指导你设计自己的正确答案。参见[如何提出一个好问题](https://stackoverflow.com/help/how-to-ask)。 –

回答

1

你可以给一个尝试这个批处理文件:

@echo off 
Color 9A & Mode con cols=83 lines=5 
Title %~n0 Add some lines on hosts files 
::::::::::::::::::::::::::::::::::::::::: 
:: Automatically check & get admin rights 
::::::::::::::::::::::::::::::::::::::::: 
REM --> Check for permissions 
Reg query "HKU\S-1-5-19\Environment" >nul 2>&1 
REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
Echo. 
ECHO      ************************************** 
ECHO      Running Admin shell... Please wait... 
ECHO      ************************************** 

    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    set params = %*:"="" 
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" 

    "%temp%\getadmin.vbs" 
    del "%temp%\getadmin.vbs" 
    exit /B 

:gotAdmin 
:::::::::::::::::::::::::::: 
::START 
:::::::::::::::::::::::::::: 

set "hostspath=%windir%\System32\drivers\etc\hosts" 

FIND /C /I "dev.rw1.local" "%hostspath%" >nul 
FIND /C /I "wiki.rw1.local" "%hostspath%" >nul 


IF "%ERRORLEVEL%" NEQ "0" (
    Attrib -R %hostspath% 
    (
     echo(
     echo ############################################### 
     echo # Lines added by "%username%" # 
     echo 192.168.100.9  dev.rw1.local 
     echo 192.168.100.10  wiki.rw1.local 
     echo ############################################### 
    )>> "%hostspath%" 
) 

Attrib +R "%hostspath%" 
+0

通常,变量名和值之间不应有空格。也许这在这里起作用,但是它应该是这样吗? 'set params =%*:“=”“' – lit

+0

它的工作。非常感谢 –

相关问题