ပရောက်စီ URL ကို တိုက်ရိုက် ပြင်ဆင်သည့်အခါ အလုပ်လုပ်သော်လည်း တူညီသော တန်ဖိုးကို Windows batch ဖိုင်သို့ ရွှေ့ပြီးနောက် အထောက်အထား အတည်ပြုမှု မအောင်မြင်ပါ။ HTTP client က URL ကို မရရှိမီ batch parser က ရာခိုင်နှုန်း အမှတ်အသားများကို ပြောင်းခဲ့သလား စစ်ဆေးပါ။

သီးခြား ကိုယ်စားပြုမှု နှစ်မျိုး ရှိသည်။ URL ကုဒ်လုပ်ခြင်းက ကိုယ်စားပြုနိုင်သည် နောက်ပြန်စောင်းမျဉ်းကို %5C အဖြစ်၊ မေးခွန်းအမှတ်အသားကို %3F အဖြစ်။ batch ဖိုင် အမိန့်ထဲရှိ စာလုံးအတိုင်း ရာခိုင်နှုန်း အမှတ်အသားကို %% အဖြစ် escape လုပ်ရမည်။

သရုပ်ပြ အကောင့် domain\user အတွက်၊ နေရာယူ စကားဝှက် pass? ဖြင့် .bat ဖိုင်တွင် ဤအရာများ ပါနိုင်သည်:

set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"

ထို့နောက် စတင်သော လုပ်ငန်းစဉ်သည် domain%5Cuser:pass%3F ပါဝင်သော URL ကို လက်ခံရမည်။ နှစ်ဆ ရာခိုင်နှုန်း အမှတ်အသားများသည် batch ရင်းမြစ်ပိုင်ဖြစ်ပြီး client သိမ်းဆည်းထားသော ပရောက်စီ URL မဟုတ်ပါ။

ထို batch စာလုံးပေါင်းကို .npmrc ဖိုင် သို့မဟုတ် အပလီကေးရှင်း၏ ပရောက်စီ အကွက်သို့ ကူးမယူပါနှင့်: ထို ထည့်သွင်းမှုများသည် တူညီသော batch ပိုင်းခြားစိတ်ဖြာမှု အဆင့်ကို မဖြတ်သန်းပါ။ အလားတူပင်၊ ဤဥပမာသည် PowerShell သဒ္ဒါ မဟုတ်ပါ။ CALL သို့မဟုတ် ဒုတိယ shell အတွက် တည်ဆောက်ထားသော အမိန့်ကဲ့သို့ အခြား ထုပ်ပိုးမှုတစ်ခုသည် နောက်ထပ် ပိုင်းခြားစိတ်ဖြာမှု တစ်ခွန်း ထည့်သွင်းနိုင်ပြီး ၎င်း၏ ကိုယ်ပိုင် ပြန်လည်သုံးသပ်မှု လိုအပ်သည်။

SET သတ်မှတ်ချက်ကို ပြသထားသည့်အတိုင်း ကိုးကားအမှတ်အသားများထဲ ထည့်ပါ၊ မတော်တဆ ကွက်လပ်များ သို့မဟုတ် shell မက်တာ အက္ခရာများ မရည်ရွယ်သော အမိန့်၏ အစိတ်အပိုင်း မဖြစ်စေရန်။ ကိုးကားအမှတ်အသား တစ်ခုတည်းဖြင့် ရာခိုင်နှုန်း ချဲ့ထွင်မှုကို မတားဆီးနိုင်ပါ။

ရလဒ်ကို စစ်ဆေးရာတွင် စကားဝှက် ပါဝင်သော URL ကို မျှဝေ log သို့ ပရင့်ထုတ်မည့်အစား မျှော်လင့်ထားသော ကုဒ်လုပ်မှုကို ဖြတ်တောက်ထားသော ကိုယ်စားပြုမှုနှင့် နှိုင်းယှဉ်ပါ။ shell escape ပြုပြင်မှုသည် အထောက်အထားကို ထိန်းသိမ်းသည်၊ client က ယခင်က မပံ့ပိုးခဲ့သော အတည်ပြုမှု အစီအစဉ်ကို ရွေးချယ်ခြင်း မဟုတ်ပါ။

ဆက်စပ်ဆောင်းပါးများ