Проблема с пакетной программой - PullRequest
0 голосов
/ 30 августа 2011

В настоящее время я пытаюсь запрограммировать пакетный скрипт, который позволяет пользователю вводить имя веб-сайта, а затем пишет «127.0.0.1 www.website.com» в нижней части файла хоста пользователя (по сути, блокируя этот веб-сайт)

Все работает, кроме одной строки.Мне нужно написать следующую строку в другой пакетный файл, который будет создан моей программой:

echo find /v "%url%" < C:\WINDOWS\System32\drivers\etc\hosts > C:\Users\%username%\desktop\temp.txt >> unblock.bat

Эта строка является частью кода, который сможет удалить сайт из файла hosts, если пользовательжелаетПроблема заключается в знаках «<» и «>».Программа не позволит мне записать их в новый командный файл.Я попытался сохранить их как переменные и понял, что единственный способ сделать это - объявить их с помощью кавычек:

set char1="<"
set char2=">"

, а затем моя команда выглядит так:

echo find /v "%url%" %char1% C:\WINDOWS\System32\drivers\etc\hosts %char2% C:\Users\%username%\desktop\temp.txt >> unblock.bat

Проблема в том, что при записи в новый пакетный файл они оба имеют "" вокруг себя, что делает новый пакетный файл бесполезным, так как команда не выполняется должным образом.

Любые идеи покак это исправить?

Вот весь код командного файла (неполный):

@echo off
TITLE Site Blocker
SET /P url=Enter website (e.g. www.facebook.com)- 
echo. >> C:\WINDOWS\System32\drivers\etc\hosts
echo 127.0.0.1 %url% >> C:\WINDOWS\System32\drivers\etc\hosts
echo find /v "%url%" < C:\WINDOWS\System32\drivers\etc\hosts >  C:\Users\%username%\desktop\temp.txt >> unblock.bat
echo del C:\WINDOWS\System32\drivers\etc\hosts /Q >> unblock.bat
echo ren C:\Users\%username%\desktop\temp.txt hosts >> unblock.bat
echo copy C:\Users\%username%\desktop\hosts C:\WINDOWS\System32\drivers\etc\ >>   unblock.bat
echo del C:\Users\%username%\desktop\hosts /Q >> unblock.bat
echo msg * %url% unblocked >> unblock.bat
echo del unblock.bat >> unblock.bat
echo exit >> unblock.bat
exit

1 Ответ

3 голосов
/ 30 августа 2011

Избегай больше и меньше чем с помощью каретки (^)

...