0
                        
                    
                    ساخت batc file برای تغییر فایل hosts
سلام دوستان
میخوام یه batch file درست کنم وقتی کلاینت اجراش کرد بره تو مسیر C:\Windows\System32\drivers\etc\hosts و یک ایپی و اسم اضافه کنه
ممنون میشم کمکم کنید
از همه مهم تر فقط یک بار اجرا بشه
2 پاسخ
                                    
                                    0
                                    
                                    
                                
                                کد زیر یک مثاله ، البته دسترسی ّFull به فایل Host هم شرطه
@echo off
set hostpath=%windir%\System32\drivers\etc\hosts
echo 62.116.159.4 ns1.intranet.de >> %hostpath%
echo 217.160.113.37 ns2.intranet.de >> %hostpath%
echo 89.146.248.4 ns3.intranet.de >> %hostpath%
echo 74.208.254.4 ns4.intranet.de >> %hostpath%
exit
                                    
                                    1
                                    
                                    
                                
                                
@echo off
مسیر فایل هاست در متغیر قرار میگیرد 
set "hostpath=%systemroot%\system32\drivers\etc"
set "hostfile=hosts"
فایل هاست بطور معمول فقط خواندنی هستش با دستور زیر قابل ویرایش میشود 
attrib -r -s -h "%hostpath%\%hostfile%"
مقدار و یا ای پی که دنبالش هستید 
set find=OLD IP
ای پی جدیدی که میخاهید جایگزین قدیمی شود 
set replace=NEW IP
ایجاد حلقه برای جستجو
for /f "delims=" %%a in ('type "%hostpath%\%hostfile%"') do (
set "string=%%a"
set "string=!string:%find%=%replace%!"
>> "newfile.txt" echo !string!
)
move /y "newfile.txt" "%hostpath%\%hostfile%"
فایل را دوباره بعد از ویرایش و تغییرات به حالت فقط خواندنی برگردانید با دستور زیر 
attrib +r "%hostpath%\%hostfile%"
echo Done.
pause