কমান্ড লাইনের মাধ্যমে আমি কীভাবে সিস্টেমে PATH ভেরিয়েবলের স্থায়ীভাবে একটি এন্ট্রি যুক্ত করতে পারি?


13

আমাকে কী করতে হবে:

  • %PATH%SYSTEM স্তরে পরিবেশ পরিবর্তনশীলটিতে একটি ফোল্ডার যুক্ত করুন ।
  • পরিবর্তন স্থায়ী করুন।

আমার এটি কীভাবে করা দরকার:

  • কমান্ড প্রম্পট বা অন্য কোনও পদ্ধতি ব্যবহার করে যার মাধ্যমে একটি ফাইলে সমস্ত প্রয়োজনীয় কমান্ড লেখা যেতে পারে .BAT
  • শুধুমাত্র ইন্টারনেট সংযোগ ছাড়াই উইন্ডোজ এক্সপি এসপি 3-এর খালি ইনস্টলের জন্য উপলব্ধ এমন সরঞ্জামগুলি ব্যবহার করুন।
  • আমি বরং স্থানীয়ভাবে স্ক্রিপ্টটি চালাব, তবে আমার লক্ষ্য সিস্টেমে দূরবর্তী অ্যাক্সেসও রয়েছে। তবে মনে রাখবেন যে আমি সিস্টেমে কোনও অ-ডিফল্ট পরিষেবা (যেমন: দূরবর্তী রেজিস্ট্রি) সক্ষম করতে পারি না।

স্ক্রিপ্টে সিস্টেমে কাজ করা দরকার:

  • উইন্ডোজ এক্সপি এসপি 3
  • উইন্ডোজ সার্ভার 2003 এসপি 2
  • উইন্ডোজ 7 এসপি 1
  • উইন্ডোজ সার্ভার 2008 আর 2 এসপি 1

আমি SETকমান্ডের সাথে মোটামুটি পরিচিত , তবে আমি এটিও সচেতন যে এটি সাধারণত বিদ্যমান পরিবর্তনশীলটিকে এতে যুক্ত করার পরিবর্তে ওভাররাইট করে ফেলবে । তা গ্রহণযোগ্য নয়। এর SETপরিবর্তে ভেরিয়েবলটিতে যুক্ত হবে এমন অন্য কোনও সরঞ্জাম (বা এর বিকল্প , যার বিষয়ে আমি অজানা)? অথবা, আমার কি স্ক্রিপ্টে এমন একটি ওয়ার্ক-আওয়ার স্থাপন করা দরকার যার মধ্যে বিদ্যমান ভেরিয়েবলটি অস্থায়ীভাবে অন্য ভেরিয়েবল বা পাঠ্য ফাইলে অনুলিপি করা অন্তর্ভুক্ত?

এছাড়াও, এটি আমার বোধগম্য যা স্থায়ীভাবে পরিবর্তনশীলকে পরিবর্তন SETকরবে না । আমি এর উল্লেখ দেখেছি , তবে এটি উইন্ডোজ এক্সপি এসপি 3 এর মধ্যে অন্তর্নির্মিত বলে মনে হচ্ছে না (বা কমপক্ষে, আমি যে সিস্টেমে কাজ করছি তাতে এটি উপলব্ধ হবে না)। রেজিস্ট্রি সম্পাদনা বা কোনও কিছুর মাধ্যমে পরিবর্তন স্থায়ী করার অন্য কোনও উপায় আছে কি?SETX

আমি আশেপাশে কিছু অনুসন্ধান করেছি এবং উইন্ডোজের পরিবেশ পরিবর্তনশীলগুলি নির্ধারণের জন্য এখান থেকে বেশ ভাল কিছু শিখেছি। তবে, আমি এখনও একটি সঠিক সদৃশ প্রশ্ন খুঁজে পাইনি যা আমার প্রয়োজন অনুসারে হবে। যদি একটি থাকে তবে দয়া করে আমাকে জানান।


সেটপ্স এক্সপি নিয়ে আসে না। এটি এক বা একাধিক রিসোর্স কিটগুলিতে রয়েছে তবে আমি ভুলে গিয়েছি কোনটি অফহ্যান্ড। কমান্ড লাইনে স্থায়ী পরিবেশে পরিবর্তনশীল পরিবর্তন করতে এটি অবশ্যই সহজতম উপায়। আপনি রেজিস্ট্রি পরিবর্তন করতে পারেন (HKEY_LOCAL_MACHINE Y SYSTEM \ CurrentControlSet \ নিয়ন্ত্রণ \ সেশন ম্যানেজার \ পরিবেশ) তবে কমান্ড লাইন থেকে রেজিস্ট্রি পরিবর্তনগুলি কেকের কোনও অংশ নয়। আমি যদি আপনি হয়ে থাকি তবে আমি এটি করার জন্য একটি ভিবিএস স্ক্রিপ্ট লিখব।
ইবিগ্রিন

@ ইগ্রগ্রিন REGরেজিস্ট্রি পরিবর্তন করতে আমি কিছুটা পরিচিত । আপনি যদি বিদ্যমান পথটি কীভাবে ধরে রাখবেন সে সম্পর্কে পরামর্শ সহ যদি উত্তর হিসাবে পোস্ট করতে চান তবে আমি কমপক্ষে এটিকে একটি আপ-ভোজন দেব।
ইসজি

1
আমি মনে করি, ইবিগ্রিনের পরামর্শ অনুসারে, এটি কীভাবে করা দরকার তা আমি বের করে ফেলেছি। এখন আমি কেবল চাই যে এক্সপ্লোরারটিকে রিবুট বা পুনরায় লোড না করে রেজিস্ট্রি রিফ্রেশ করার (এবং পরিবেশের ভেরিয়েবলগুলিতে চাপ দিন) বল দেওয়ার কোনও উপায় ছিল?
ইসজি

1
@ এগ্রগ্রিন হ্যাঁ, এটি দেখতে এটির মতোই। যাইহোক, যদি আপনার সিনট্যাক্সটি বের করার কিছুটা সময় থাকে তবে আপনি কি দয়া করে একটি আসল উত্তর পোস্ট করতে পারেন? আমি বরং এটি একটি স্ব-উত্তর প্রশ্নের মধ্যে পরিণত করতে চাই না।
ইসজি

1
@ এলজি, আপনার নিজের প্রশ্নের উত্তর দেওয়া উচিত। একটি ভাল প্রশ্নের উত্তরের উত্তর দু'টিই মূল্যবান, এমনকি আপনি নিজেরাই নিজের উত্তর দেওয়ার পরেও।
মুর্দদিন এমরিস

উত্তর:


4

নিম্নলিখিত আপনার পথে 'সি: \ বিন' যুক্ত করে এবং তারপরে রেজিস্ট্রিতে নতুন পথটি সংরক্ষণ করে:

set path=%path%;C:\bin
reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %path% /f

আমি এটি এক্সপি এসপি 3-তে কেবল পরীক্ষা করেছি, তবে এটি আরও নতুন সংস্করণেও কাজ করা উচিত।

আমার ধারণা, এমন কোনও নতুন ব্যবহারকারী যিনি মেশিনটি পুনরায় বুট করার আগে লগ ইন করে নতুন পাথটি না পান।

হ্যারি% সিস্টেমরট% সম্পর্কে তার মন্তব্যে ঠিক বলেছেন, আপনি যদি এটি রাখতে চান তবে প্রথমে আপনার রেজিস্ট্রি থেকে পুরানো মানটি টানতে হবে:

@echo OFF

set KEY_NAME="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
set VALUE_NAME=Path

FOR /F "usebackq skip=4 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
  set ValueName=%%A
  set ValueValue=%%C
)

if defined ValueName (

  set newPath=%ValueValue%;C:\bin

  reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %newPath% /f

  set path=%path%;C:\bin

) else (
    @echo %KEY_NAME%\%VALUE_NAME% not found.
)

2
সচেতন থাকুন যে এটি পরিবেশের পরিবর্তনশীল উল্লেখগুলি প্রসারিত করে বিদ্যমান কিছু PATH এন্ট্রিগুলিকে পরিবর্তন করবে change উদাহরণস্বরূপ, স্ট্যান্ডার্ড এন্ট্রি% সিস্টেমরুট% \ system32 সি: \ উইন্ডোজ \ সিস্টেম 32 দ্বারা প্রতিস্থাপন করা হবে। এই বিশেষ উদাহরণটির কোনও কারণ নেই কারণ সিস্টেমরুট একটি ধ্রুবক, তবে যদি কেউ পরিবেশের পরিবর্তনশীল সম্পর্কিত একটি রেফারেন্স সহ একটি PATH সেট আপ করে থাকে তবে এটি পরিবর্তন করে আপনি এটি ভেঙে ফেলবেন। (আমি বর্তমান কিছু সান জেডিকে বিন ডিরেক্টরিটি নির্দেশ করার জন্য আমার কয়েকটি কম্পিউটারে এটি করি))
হ্যারি জনস্টন

নতুন স্ক্রিপ্টটি লিখিত হিসাবে কাজ করবে না যদি পাথটিতে বন্ধনী রয়েছে, উদাহরণস্বরূপ, প্রোগ্রাম ফাইলগুলির কোনও রেফারেন্স (x86)।
হ্যারি জনস্টন

-1
set path=%path%;C:\bin
reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d ^%path^% /f

2
যদিও খালি কমান্ডগুলি কার্যকর হতে পারে, আমরা আমাদের প্রশ্ন / উত্তরগুলিতে আরও কিছুটা কাজ আশা করি। এটি কীভাবে ওপিএস প্রশ্নের উত্তর দেয় তা দয়া করে ব্যাখ্যা করুন।
ʜιᴇcʜιᴇ007
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.