الملفات الدفعية لإنشاء وحذف النص إلى ملف Windows hosts باستخدام برنامج جدولة المهام

StackOverflow https://stackoverflow.com//questions/24048857

سؤال

الهدف هو استخدام برنامج جدولة المهام لحظر الفيسبوك من وقت محدد لزيادة الإنتاجية وتقليل عوامل التشتيت.لقد حذفت الفيسبوك لمدة سبعة أشهر.لا أريد استخدام برامج الطرف الثالث.الرجاء مساعدتي.أيضًا إذا كان لديك طريقة أسهل أو رمز أفضل، فيرجى إظهاره.

هذا ما لدي.

لدي هذا الملف الدفعي = blockfacebook.bat الذي تم تنفيذه في وقت معين والذي يعمل:

صدى 0.0.0.0 www.facebook.com >> c:\windows\system32\drivers\etc\hosts

على الرغم من أن الملف الدفعي التالي = unblockfacebook.bat يؤدي إلى إفراغ ملف المضيفين تمامًا:

اكتب C: Windows System32 Drivers etc Hosts | FindStstr /V Facebook> c: windows system32 drivers etc hosts

هل يمكن لأحد أن يقول لي ما الخطأ الذي أفعله مع unblockfacebook.bat

شكرًا لك،

إيجيس

هل كانت مفيدة؟

المحلول

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "file=c:\windows\system32\drivers\etc\hosts"

    for /f "tokens=* delims=0123456789" %%a in (
        'findstr /n /i /v /c:"facebook" "%file%" ^& type nul ^> "%file%"'
    ) do (
        set "line=%%a"
        setlocal enabledelayedexpansion
        >>"%file%" echo(!line:~1!
        endlocal
    )

    endlocal

يستخدم هذا الرمز findstr لتصفية خطوط الإدخال وترقيم المخرجات (يضمن ترقيم الأسطر قراءة الأسطر الفارغة في ملف الإدخال ومعالجتها وكتابتها للإخراج)، وإزالة محتوى ملف الإدخال.مثل for /f قام بتخزين مخرجات findstr في الذاكرة، و findstr لقد انتهت عملية معالجة البيانات، فلا توجد مشكلة في القيام بذلك.

ثم for يبدأ في معالجة المدخلات (مخرجات findstr).إنها قائمة من الخطوط المرقمة.لإزالة الأرقام، يتم استخدامها كمحددات في for يأمر.عندما تبدأ الأسطر بمحددات، تتم إزالتها حتى يتم العثور على حرف غير محدد، النقطتين اللتين تفصلان الأرقام عن محتوى السطر (لم يتم استخدام النقطتين كمحدد لتجنب مشاكل الأسطر التي تبدأ بنقطتين على سبيل المثال بعض عناوين ipv6 )

الآن، مع إزالة الأرقام من البداية، كل ما يجب القيام به هو إزالة الحرف الأول وإلحاق الأسطر بملف الإدخال/الإخراج (الذي تم إفراغه).

نصائح أخرى

giveacodicetagpre.

هذا هو الحل الذي أحسبته عندما قرأت هذا.على الرغم من أن الطرق أكثر فعالية أو بديلة دائما موضع تقدير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top