我成功添加這個腳本文件內容,添加文本文件,如果不存在
@echo off
set hostspath=%windir%\System32\drivers\etc\hosts
echo 99.127.158.114 www.example.com >> %hostspath%
exit
但是,如果我再次運行該批處理文件,它再次添加行。並有重複。我想這樣做,當我運行蝙蝠時,它應該使文件內容爲空,然後放入內容(或檢查addedi是否添加)。什麼是正確的方法來做到這一點?
我成功添加這個腳本文件內容,添加文本文件,如果不存在
@echo off
set hostspath=%windir%\System32\drivers\etc\hosts
echo 99.127.158.114 www.example.com >> %hostspath%
exit
但是,如果我再次運行該批處理文件,它再次添加行。並有重複。我想這樣做,當我運行蝙蝠時,它應該使文件內容爲空,然後放入內容(或檢查addedi是否添加)。什麼是正確的方法來做到這一點?
find "99.127.158.114 www.example.com" %hostspath% || echo 99.127.158.114 www.example.com>>%hostspath%
||
充當「如果前一個命令失敗,那麼......」
「>」需要是「>>」。並且像魅力一樣工作。 – user198989 2014-10-11 17:53:41
是的 - 當然。編輯。 – Stephan 2014-10-11 20:11:35
這可能是完全關閉基地(我不是一個Windows的傢伙),但''>>通常意味着**追加* *。嘗試用'>'來代替文件 – 2014-10-11 15:04:51
@DrewHammond:你說得對。但是'hosts'通常有多行,如果它不在那裏,他想添加一行。 – Stephan 2014-10-11 15:12:27
當你需要時,「sed」在哪裏? – 2014-10-11 15:15:02