0
我目前正在嘗試編寫批處理腳本,它允許用戶輸入網站的名稱,然後在用戶主機文件的底部寫入「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
哇,天才。非常感謝!花幾個小時試圖弄明白:/ – Josh
@Josh如果阿倫的答案解決了你的問題,你應該接受他的答案。 – aphoria
@aphoria:謝謝:-) – Arun