Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование строки в hosts (http://forum.oszone.net/showthread.php?t=263638)

Фартовый 02-07-2013 22:58 2178365

Копирование строки в hosts
 
Всем здравствуйте!И прошу помощи по созданию .bat файла.
Пример:
1.При запуске батник прописывает в файле hosts который лежит по адресу C:\Windows\System32\drivers\etc\hosts строку : 127.0.0.1 www.site.com
2.Идет отсчет 5...4....3....2....1... и запускается программа к примеру по адресу C:\progs1.exe
3.Далее в выше упомянутом файле hosts переписывается строка 127.0.0.1 www.site.com которую мы писали раньше, на строку #127.0.0.1 www.site.com или полностью удаляет строку записанную в пункте 1.
Всем спасибо за внимание!

41275jur 03-07-2013 00:57 2178398

Попробуй так. Только при выключенном Антивирусе.
Код:

SET NEWLINE=^& echo.

FIND /C /I "www.site.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^127.0.0.1                  www.site.com>>%WINDIR%\system32\drivers\etc\hosts


Фартовый 03-07-2013 01:46 2178415

Ну этот код прописывает в файле hosts 127.0.0.1 www.site.com. Начало есть:)

sunnykey 05-07-2013 11:43 2179720

Код:

#Powershell script.
#Don't forget unlock script executing by
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
#Save this file with ".ps1" extension

function ModifyHosts($file,[switch] $NeedComment) {
    $tmpFile="$file"+"1"
    Get-Content -Path $file | Where-Object {$_ -ne ""} | Select-String -pattern "127.0.0.1 www.site.com" -NotMatch | `
        Out-File -FilePath $tmpFile
    if ($NeedComment) {
        "#127.0.0.1 www.site.com" | Out-File -FilePath $tmpFile -Append
    } else {
        "127.0.0.1 www.site.com" | Out-File -FilePath $tmpFile -Append
    }
    Remove-Item -Path $file -Force
    Rename-Item -Path $tmpFile -NewName $file
}

$HostsFilePath='$Env:SystemRoot\system32\drivers\etc\hosts'
ModifyHosts -file $HostsFilePath
Start-Sleep -Seconds 5
Start-Process -FilePath "calc.exe"
Start-Sleep -Seconds 5
ModifyHosts -file $HostsFilePath -NeedComment


Фартовый 06-07-2013 14:41 2180292

Не плохо, но хотелось бы именно .bat файл а не PowerShell!

Фартовый 08-07-2013 03:17 2180961

Цитата:

Цитата Foreigner
Код:
@echo off
setlocal
pushd "%systemroot%\system32\drivers\etc"
copy hosts hosts.tmp
:write
1>nul findstr "127\.0\.0\.1.*www\.site\.com" hosts && (
1>hosts.tmp findstr /v "127\.0\.0\.1.*www\.site\.com" hosts
1>nul move hosts.tmp hosts
popd
goto:eof
) || (
1>>hosts.tmp echo 127.0.0.1 www.site.com
1>nul move hosts.tmp hosts
)
timeout /t 5
start calc
goto:write »

Че то не работает,


Время: 20:01.

Время: 20:01.
© OSzone.net 2001-