আমার উইন্ডোজ 8 কমান্ড লাইন কেন তার পথ আপডেট করবে না


21

আমার PATH ভেরিয়েবলটিতে আমার নতুন এন্ট্রি যুক্ত করা দরকার। এটি আমার কাজের ক্ষেত্রে একটি সাধারণ ক্রিয়াকলাপ, তবে আমি সম্প্রতি উইন্ডোজ ৮ ব্যবহার করা শুরু করেছি started আমি ধরে নিয়েছিলাম প্রক্রিয়াটি উইন্ডোজ,, ভিস্তা, এক্সপি'র মতো হবে ...

আমার ইভেন্টগুলির ক্রম এখানে:

  1. সিস্টেমের বৈশিষ্ট্যগুলি ওপেন করুন (শুরু-> [টাইপ করুন "কন্ট্রোল প্যানেল"] -> কন্ট্রোল প্যানেল \ সিস্টেম এবং সুরক্ষা Advanced সিস্টেম -> উন্নত সিস্টেম সেটিংস -> পরিবেশগত পরিবর্তনসমূহ)
  2. আমার ব্যবহারকারী পাথ ভেরিয়েবলের শুরুতে নতুন পথ যুক্ত করুন (সি: \ দেব \ জাভা \ অ্যাপাচি-পিপীলিকা- 1.8.4 \ বিন;)
  3. একটি কমান্ড প্রম্পট খোলে (শুরু -> [টাইপ করুন "কমান্ড প্রম্পট" enter] -> [টাইপ "পাথ" এন্টার]

আমার নতুন পাথ এন্ট্রি উপলভ্য নয় (সংযুক্ত চিত্র এবং ভিডিও দেখুন)। আমি উইন্ডোজ 7 মেশিনে ঠিক একই প্রক্রিয়াটির সদৃশ করেছিলাম এবং এটি কার্যকর হয়েছে।

পরিবেশের ভেরিয়েবলগুলির পর্দা দখল

সম্পাদনা

উইন্ডোজ 8 এনভায়রনমেন্ট ভেরিয়েবলস এবং কমান্ড প্রম্পট ভিডিও

সম্পাদনা

এটি অবশ্যই উইন্ডোজ the এর আচরণ নয় Windows উইন্ডোজ in. আমি যে আচরণটি আশা করি তা দেখতে এই ভিডিওটি দেখুন http://

সম্পাদনা 5/31/2013

সুতরাং, অনেক হতাশার পরে, আমি WM_SETTINGCHANGEইভেন্টটি পরীক্ষা করতে একটি ছোট সি # অ্যাপ লিখেছিলাম । এই কোডটি উইন্ডোজ 7 এবং উইন্ডোজ 8 উভয় ক্ষেত্রেই ইভেন্টটি গ্রহণ করে তবে আমার সিস্টেমে উইন্ডোজ 8 এ, আমি সঠিক পথটি পাই না; তবে, আমি উইন্ডোজ 7. এ করি This এটি অন্যান্য উইন্ডোজ 8 সিস্টেমে পুনরুত্পাদন করা যায়নি।

এখানে সি # কোড।

using System;
using Microsoft.Win32;

public sealed class App
{
    static void Main()
    {
        SystemEvents.UserPreferenceChanging += new UserPreferenceChangingEventHandler(OnUserPreferenceChanging);

        Console.WriteLine("Waiting for system events.");
        Console.WriteLine("Press <Enter> to exit.");
        Console.ReadLine();
    }

    static void OnUserPreferenceChanging(object sender, UserPreferenceChangingEventArgs e)
    {
        Console.WriteLine("The user preference is changing. Category={0}", e.Category);
        Console.WriteLine("path={0}", System.Environment.GetEnvironmentVariable("PATH"));
    }
}

OnUserPreferenceChanging সমতুল্য WM_SETTINGCHANGE

উইন্ডোজ in-তে চলমান সি # প্রোগ্রামটি (আপনি ইভেন্টটি দেখতে পাচ্ছেন এবং এটি সঠিক পথটি দেখায়)।

উইন্ডোজ 8 এ চলমান সি # প্রোগ্রাম (আপনি ইভেন্টটি দেখতে পাচ্ছেন তবে ভুল পথটি দেখতে পাবেন)।

আমার পরিবেশ সম্পর্কে এমন কিছু আছে যা এই সমস্যাটি ঘটাচ্ছে। তবে এটি কি উইন্ডোজ 8 বাগ?

সম্পাদনা 2014-04-28

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


2
আমি মনে করি তাদের কার্যকর করার জন্য পরিবর্তনগুলি করার পরে আপনাকে পুনরায় বুট করা দরকার।
এনজিমা

@ এনিগমা কেন? আমার উইন্ডোজ 7, ​​ভিস্তা, এক্সপি, 2000 এ পুনরায় বুট করার দরকার নেই ...
mawcsco

@ mawcsco আপনি কমপক্ষে 7-এ করেছেন। ওপেনিং কমান্ডটি সূচনা মেনু থেকে অনুরোধ করে এক্সপ্লোরার শেল থেকে পরিবেশের সাথে প্রবর্তন করে, যা আপনি লগ ইন করার সময় লোড হয়েছিল You
ডারথ অ্যান্ড্রয়েড

1
@ এনিগমা একটি পুনরায় বুট করার দরকার নেই। serverfault.com/questions/8855/…
mawcsco

1
আমি এই মাত্র দুটি উইন্ডোজ 7 এবং উইন্ডোজ 8 এ যাচাই করেছি: উভয় ক্ষেত্রেই নতুন পরিবেশ cmdচালু হওয়ার সময় নতুন পরিবেশের পরিবর্তনশীল দৃশ্যমান ছিল। অবশ্যই ইতিমধ্যে চলমান cmdআপডেট পরিবেশ পায় নি।
আলেক্সি ইভানভ 10'13

উত্তর:


7

যদি আপনি প্রারম্ভ মেনু থেকে কমান্ড প্রম্পট বা আপনার টাস্ক বারের একটি শর্টকাট চালু করেন তবে আপনাকে অবশ্যই:

  • পুনরায় চালু করুন explorer। এটি হত্যা এবং পুনরায় চালু করুন।
  • লগ আউট এবং ফিরে (যা কার্যকরভাবে পুনরায় চালু explorer)।
  • সিস্টেমটি পুনরায় চালু করুন (যা কার্যকরভাবে পুনরায় চালু হয় explorer)।

পরিবেশটি তাত্ক্ষণিকভাবে আপডেট হয় না কারণ পরিবেশগুলি তাদের পিতামহীন প্রক্রিয়া থেকে উত্তরাধিকার সূত্রে প্রাপ্ত ব্যতীত explorer, যা লগ-ইন করার পরে সিস্টেম দ্বারা শুরু করা হয়। এটি আমার উইন্ডোজ 7 সিস্টেমে এটি আচরণ করে।

সুতরাং এনভায়রনমেন্ট ভেরিয়েবলগুলি পরিবর্তন করা রেজিস্ট্রি কীগুলি আপডেট করে তবে সিস্টেমটি কোনও প্রক্রিয়া চালু হওয়ার জন্য নতুন লগইন পরিবেশ তৈরি না করা পর্যন্ত এই কীগুলি পুনরায় পড়তে হবে না। বেশিরভাগ সময়, এটি ঘটছে না কারণ প্রক্রিয়াগুলি এমন একটি প্রক্রিয়ার সন্তান যা ইতিমধ্যে একটি পরিবেশ রয়েছে তাই পরিবেশ উত্তরাধিকার সূত্রে প্রাপ্ত।


2
উইন্ডোজ for এর জন্য সম্পূর্ণ মিথ্যা above উপরের পোস্টে আমি যে ভিডিওটি লিঙ্ক করেছি তা দেখুন।
mawcsco

1
হাহ। আপনি অবশ্যই সেখানে সংশোধন করেছেন, যদিও আমার অবশ্যই উইন 7 এর আগে নতুন কনসোল উইন্ডোতে আমার পরিবর্তনগুলি সঙ্গে সঙ্গে প্রযোজ্য ছিল না not আমার সঠিক কর্মপ্রবাহটি কী ছিল তা আমি মনে করতে পারি না, যদিও। ততক্ষণে যদি আপনার জন্য কারও উত্তর না থাকে তবে আমি ঘরে ফিরলে আমি আমার উইন 8 সিস্টেমটি নিয়ে খেলব।
ডারথ অ্যান্ড্রয়েড

5
আপনি যদি সিস্টেম বৈশিষ্ট্য ডায়ালগ ব্যবহার করে পরিবেশের পরিবর্তনগুলি পরিবর্তন করেন তবে পরিবর্তনগুলি বর্তমানে চলমান এক্সপ্লোরার ইনস্ট্যান্সের সাথে সাথে প্রয়োগ করা হয় এবং পরে সমস্ত প্রক্রিয়া শুরু হয় এবং নতুন পরিবেশ পান। ইতিমধ্যে চলমান প্রক্রিয়াগুলি WM_SETTINGCHANGEম্যাসেজটি পরিচালনা না করে তাদের পরিবেশের ভেরিয়েবলগুলি স্বয়ংক্রিয়ভাবে আপডেট হয় না ।
আলেক্সি ইভানভ

1
বাবু, এটি যেভাবেই হোক আমার যে সমস্যাটি ছিল তা বুঝতে আমাকে সহায়তা করেছে। আমি কমান্ড প্রম্পট চালু করতে অটোহটকি ব্যবহার করি এবং আমি অটোহটকি পুনরায় শুরু না করা পর্যন্ত এটি কাজ করে না!
মোস

1
@ mawcsco এটি আমার পক্ষে কাজ করেছে, আমি উইন্ডোজ using ব্যবহার করছি।
laike9m

3

থেকে: http://support.microsoft.com/kb/104011 /server//q/8855/158027 মারফত

...

তবে নোট করুন যে পরিবেশের ভেরিয়েবলগুলিতে পরিবর্তনগুলি তাত্ক্ষণিক পরিবর্তনের ফলে আসে না। উদাহরণস্বরূপ, আপনি যদি পরিবর্তনগুলি করার পরে অন্য কমান্ড প্রম্পট শুরু করেন, পরিবেশের ভেরিয়েবলগুলি পূর্ববর্তী (বর্তমান নয়) মানগুলি প্রতিফলিত করবে। পরিবর্তনগুলি কার্যকর হয় না যতক্ষণ না আপনি লগ অফ করেন এবং তারপরে আবার লগইন করেন না।

লগ-অফ না করেই এই পরিবর্তনগুলি কার্যকর করতে, সিস্টেমের সমস্ত উইন্ডোতে একটি WM_SETTINGCHANGE বার্তা সম্প্রচার করুন, যাতে যে কোনও আগ্রহী অ্যাপ্লিকেশনগুলি (যেমন উইন্ডোজ এক্সপ্লোরার, প্রোগ্রাম ম্যানেজার, টাস্ক ম্যানেজার, কন্ট্রোল প্যানেল এবং এর আগে) একটি আপডেট সম্পাদন করতে পারে। অধিক তথ্য


উদাহরণস্বরূপ, উইন্ডোজ এনটি-ভিত্তিক সিস্টেমগুলিতে, নিম্নলিখিত কোড টুকরা কমান্ড প্রম্পটে ব্যবহৃত পরিবেশের পরিবর্তনগুলিতে পরিবর্তনগুলি প্রচার করতে হবে:

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
    (LPARAM) "Environment", SMTO_ABORTIFHUNG,
    5000, &dwReturnValue);

উইন্ডোজ 95 এবং উইন্ডোজ 98 সহ উইন্ডোজ এক্সপ্লোরার এবং প্রোগ্রাম ম্যানেজার সহ যে অ্যাপ্লিকেশনগুলি পাঠানো হয় তার কোনওটিই এই বার্তায় সাড়া দেয় না। সুতরাং, যদিও এই নিবন্ধটি উইন্ডোজ 95 এবং উইন্ডোজ 98 এ প্রযুক্তিগতভাবে প্রয়োগ করা যেতে পারে তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিকে অবহিত করা ছাড়া কোনও প্রভাব নেই। উইন্ডোজ 95 এ গ্লোবাল এনভায়রনমেন্ট ভেরিয়েবল পরিবর্তন করার একমাত্র পদ্ধতি হ'ল অটোেক্সেক.বাট ফাইলটি পুনরায় বুট করা এবং পুনরায় বুট করা।


2
উইন্ডোজ 7-এ উইন্ডোজ এক্সপ্লোরার এই বার্তাটি পরিচালনা করে এবং এটি টাস্কবার বা স্টার্ট মেনু থেকে কমান্ড প্রম্পট পুনরায় আরম্ভ করার জন্য যথেষ্ট।
আলেক্সি ইভানভ

"পরিবেশগত ভেরিয়েবলের পরিবর্তনগুলি তত্ক্ষণাত্ কার্যকর হওয়া উচিত, যদি আপনি প্রশ্নে থাকা কম্পিউটারের প্রধান বৈশিষ্ট্য সংলাপের মাধ্যমে পরিবর্তনটি করেন (আমার কম্পিউটার | বৈশিষ্ট্য | উন্নত | পরিবেশগত পরিবর্তনসমূহে যান) the সমস্ত উইন্ডোতে তাদের পরিবর্তনের বিষয়ে অবহিত করতে "। serverfault.com/questions/8855/…
mawcsco

2
"সিস্টেম টিপ এই নিবন্ধটি এক আপনি ব্যবহার করছেন চেয়ে উইন্ডোজ কোনো ভিন্ন সংস্করণ ক্ষেত্রে প্রযোজ্য এই প্রবন্ধে বিষয়বস্তু প্রাসঙ্গিক নাও হতে পারে পরিদর্শন উইন্ডোজ 8 সমাধান সেন্টার।।"
mawcsco

এটি আমাকে অবাক করে দেখবে না যে এটি বাস্তবায়নের বিশদ এবং মাইক্রোসফ্টের উইন্ডোজ 8 বা তারপরের উপর এই আচরণকে সমর্থন করার কোনও উদ্দেশ্য ছিল না।
surfasb

1

আপনার ব্যবহারকারী সেটিংসে সমস্যা। উইন্ডো 8-এ, প্রতিটি ব্যবহারকারীর নিজস্ব পরিবেশ পরিবর্তনশীল রয়েছে।

সিস্টেমের বৈশিষ্ট্যগুলি ওপেন করুন (শুরু-> [টাইপ করুন "কন্ট্রোল প্যানেল"] -> কন্ট্রোল প্যানেল \ সিস্টেম এবং সুরক্ষা Advanced সিস্টেম -> উন্নত সিস্টেম সেটিংস -> পরিবেশগত পরিবর্তনসমূহ)

উপরের পদ্ধতিটি রুট ব্যবহারকারীর জন্য পরিবেশের পরিবর্তনগুলি সম্পাদনা করবে, সম্ভবত আপনার বর্তমান ব্যবহারকারী নয়।

আপনার ব্যবহারকারীর অ্যাকাউন্টে যেতে হবে -> আপনার বর্তমান অ্যাকাউন্টটি নির্বাচন করুন -> পরিবেশ পরিবর্তনশীল পরিবর্তন করুন change

পরিবর্তনের পরে, পাওয়ার শেলটি পুনরায় চালু করুন। তারপর

echo $env:JAVA_HOME

অথবা

Get-ChildItem env

আশা করি এটা তোমাকে সাহায্য করবে।


আমি মনে করি আপনি আমার স্ক্রিনশট এবং ভিডিওতে সেই বিশদটি মিস করতে পারেন যা "mwillia3 এর জন্য ব্যবহারকারী ভেরিয়েবল" সহ ডায়ালগটি দেখায়। এটি আমার ব্যবহারকারীর নাম। আমি নিশ্চিত জানি যে আমি সঠিক পরিবেশের ভেরিয়েবলগুলি সম্পাদনা করছিলাম। সি # অ্যাপ্লিকেশনটি আপডেট করা মান নয়, পুরানো মান সহ ইভেন্টটি চালাচ্ছে। আমি ইস্তফা দিলাম. আমি মোটামুটি নিশ্চিত এটি একটি উইন 8 বাগ এবং এটি পরীক্ষা করার জন্য আমার আর উইন্ডোজ 8 এ অ্যাক্সেস নেই।
mawcsco

কিছু লোক সবসময় বিশদটি পড়েন না। আমি এটি অন্য সিস্টেমে নয় কিছু সিস্টেমে দেখেছি, এমনকি আমি এটি উইন্ডোজ 7/২০০৮ এও দেখেছি। আমি যখন খুঁজে পেয়েছি তখন এর কোনও ছড়া বা কারণ নেই।
ফেরভেন্টকোডার

ডাব্লুএম_এসটিটিংএসচেঞ্জড প্রচারের পরেও উইন্ডোজ সার্ভার ২০১২ আর 2 এর একই সমস্যা। আমি বিশ্বাস করি এটি একটি উইন্ডোজ বাগ।
ভেজেনকোভ

0

SETX পরিবর্তে SETX চেষ্টা করুন। যেমনSETX PATH "%PATH%;MyPath"


1
আপনি কাজ করতে চেয়ে কেন ব্যাখ্যা করতে পারেন । SETXSET
ক্রিসএফ 10'14

প্রথমত, আমি কমান্ড লাইনটি ব্যবহার করছিলাম না, আমি সিস্টেম ডায়ালগটি ব্যবহার করছিলাম। দ্বিতীয়ত, আমার আচরণের ধরণটি উইন্ডোজ in-এ ঠিকঠাক কাজ করে তবে কখনও কখনও উইন্ডোজ ৮ এ নয় not আপনি কী ডকুমেন্টেশনের দিকে ইঙ্গিত করতে পারেন যা উইন্ডোজ and এবং উইন্ডোজ ৮ এর মধ্যে কীভাবে SET এবং SETX পরিবর্তিত হয়েছিল তা দেখায়?
mawcsco

0

যদি আপনি উইন্ডোজ 8.1 ব্যবহার করেন তবে প্রশাসক হিসাবে কমান্ড প্রম্পটটি খুলুন, তারপরে PATH কমান্ডটি কল করুন এবং আপনার এটি সেখানে উপস্থিত হওয়া উচিত। আপনি যখন সাধারণ সিএমডি ফিরে যান, এটিও প্রদর্শিত হবে। এবং প্রকৃতপক্ষে, আপনার কমান্ড প্রম্পট থেকে যুক্ত অ্যাপ্লিকেশন শুরু করতে সক্ষম হওয়া উচিত।



-1

আপনি যদি cmd.exe শুরু করতে ডেস্কটপ থেকে Win + R ব্যবহার করেন তবে এটি কাজ করে? আমার অনুমান যে এটি স্টার্ট স্ক্রিন থেকে শুরু করার ফলে শুরু হওয়া cmd.exe এর পিতামাতাকে এক্সপ্লোরার এক্সেক্স (WSAHost.exe, IIRC বা এটির যা কিছু নাম দেওয়া হয়েছে) থেকে আলাদা করা যায়, এবং সেই প্যারেন্ট প্রক্রিয়াটি WM_SETTINGCHANGE বার্তার সময় তার পরিবেশ আপডেট করে না। আমার কাছে উইন্ডোজ 8 মেশিন পরীক্ষার জন্য নেই ...


এমনকি উইন্ডোজ 8-এ স্টার্ট স্ক্রিন ইউআই সকলকে এক্সপ্লোরার এক্সের অংশ বলে মনে হয় কারণ এক্সপ্লোরারআরএক্সএ মারা গেলে এটি অদৃশ্য হয়ে যায়।
বিনকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.