উইন্ডোজ এক্সপ্লোরারে, কেন আমরা শতাংশ (%) চিহ্ন সহ একটি ফোল্ডার বা ফাইল তৈরি করতে পারি, যদি শতাংশ চিহ্নটি বিদ্যমান ভেরিয়েবলের জন্য ব্যবহার করা হয়?


13
  1. উইন্ডোজ এক্সপ্লোরার যান, এবং একটি ফোল্ডার / ডিরেক্টরি নামে তৈরি %systemdrive%, %windir%, বা অন্য কোন বিদ্যমান পরিবর্তনশীল।
  2. একটি কমান্ড প্রম্পট খুলুন এবং আপনি সবে তৈরি ফোল্ডারে যান।

আপনি পারবেন না, কারণ %কমান্ড প্রম্পটকে বিভ্রান্ত করে ফোল্ডারের নামটিতে শতাংশ ( ) চিহ্ন রয়েছে, কারণ শতাংশের চিহ্নটি বিদ্যমান ভেরিয়েবলের জন্য ব্যবহৃত হয়।

%দুই শতাংশ প্রতীক ( ) চিহ্ন সহ শতাংশ ( %%) প্রত্যাশনের কাজটি কার্যকর হয় না, সুতরাং ডেভিডপস্টিলের উত্তরটি ভুল:

এক্সপ্লোরার ডেস্কটপ দেখানোর সাথে কমান্ড প্রম্পট উইন্ডো সুতরাং, উইন্ডোজ এক্সপ্লোরারে, কেন আমরা শতাংশ ( %) চিহ্ন সহ একটি ফোল্ডার বা ফাইল তৈরি করতে পারি , যদি শতাংশ চিহ্নটি বিদ্যমান ভেরিয়েবলের জন্য ব্যবহার করা হয়?

উত্তর:


16

কেন আমরা শতাংশ চিহ্ন সহ একটি ফোল্ডার / ফাইল তৈরি করতে পারি?

%অক্ষর একটি ফাইল নামে একটি সংরক্ষিত চরিত্র নয়।

ফাইল, পাথ এবং নেমস্পেসের নামকরণের জন্য সংরক্ষিত অক্ষরগুলি হ'ল:

< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)

উত্স নামকরণ ফাইল, পাথ এবং নাম স্থান ace


শতাংশ চিহ্নটি ভেরিয়েবলের জন্য সংরক্ষিত

এখন, একটি কমান্ড প্রম্পট খুলুন এবং আপনার তৈরি ফোল্ডারে যাওয়ার চেষ্টা করুন।

আপনি পারবেন না, কারণ ফোল্ডারের নামটিতে শতাংশ চিহ্ন রয়েছে, এটি ইঙ্গিত করে যে এটি একটি পরিবর্তনশীল।

উপরেরটি সত্য নয়। আপনার প্রত্যাশা মতো সবকিছুই কাজ করে।

ব্যবহারের উদাহরণ %test%:

F:\test>echo %test%
%test%

F:\test>md %test%

F:\test>cd %test%

F:\test\%test%>

ব্যবহারের উদাহরণ %systemdrive%:

F:\test>echo %systemdrive%
C:

F:\test>md %systemdrive%
A subdirectory or file C: already exists.

F:\test>cd %systemdrive%
C:\Users\DavidPostill

F:\test>c:

C:\Users\DavidPostill>f:

F:\test>

F:\test>dir %systemdrive%
 Volume in drive C has no label.
 Volume Serial Number is C8D0-DF1E

 Directory of C:\Users\DavidPostill

03/06/2016  16:16    <DIR>          .
03/06/2016  16:16    <DIR>          ..
18/07/2015  19:25    <DIR>          .atom
03/06/2016  16:16    <DIR>          .oracle_jre_usage
08/05/2015  20:29    <DIR>          Contacts
03/06/2016  16:14    <DIR>          Desktop
01/06/2016  09:04    <DIR>          Documents
02/05/2016  12:55    <DIR>          Downloads
09/01/2015  11:51    <DIR>          dwhelper
08/05/2015  20:29    <DIR>          Favorites
20/02/2016  22:00    <DIR>          Jaikoz
08/05/2015  20:29    <DIR>          Links
17/03/2015  06:19    <DIR>          Music
29/03/2016  19:01    <DIR>          Pictures
08/05/2015  20:29    <DIR>          Saved Games
23/06/2016  10:55    <DIR>          Searches
02/05/2016  12:36    <DIR>          SecurityScans
11/04/2016  12:14               994 Start Menu - Shortcut.lnk
31/05/2016  00:52    <DIR>          temp
17/03/2015  06:19    <DIR>          Videos
               1 File(s)            994 bytes
              19 Dir(s)  69,716,357,120 bytes free

এসেসেপিং পারসেন্টস

%চরিত্র কমান্ড লাইন প্যারামিটার এবং জন্য একটি বিশেষ অর্থ FORপ্যারামিটার।

শতাংশকে নিয়মিত চরিত্র হিসাবে বিবেচনা করতে, এটি দ্বিগুণ করুন:

%%

উত্স বাক্য গঠন


আরও পড়া


1
দ্রষ্টব্য: সংরক্ষিত সমস্ত অক্ষর এনটিএফএস ফাইল সিস্টেমের ক্ষেত্রে প্রযোজ্য নয়। লিনাক্স ব্যবহার করে উদাহরণস্বরূপ, আমি খুব সহজেই একটি ফাইল তৈরি করতে পারি <test>। এটি উইন্ডোজ ফাইল পরিচালনার কাজগুলি ব্যবহার করেই করা যায় না।
নাথান ওসমান

2
@ নাথানঅসমান আপনি কাঁচা পরম পথের স্বরলিপি ( \\?\C:\USERS\DEFAULT\<test>) ব্যবহার করে উইন্ডোজ থেকে এই নামের সাথে ফাইল তৈরি করতে সক্ষম হতে পারেন ।
zwol

@ জোওয়োল ওহ? আমি এটা জানতাম না। এটা জানা ভাল.
নাথান ওসমান

@zwol cmdশেল থেকে নয় ... F:\test>md \\?\f:\test\<test> কমান্ডের বাক্য গঠনটি ভুল।
ডেভিডপস্টিল

@ ডেভিডপস্টিল কী হবে md \\^?\f:\test\^<test^>?
zwol

11

ডেভিডপস্টিলের উত্তর দুর্দান্ত তবে নতুনদেরকে কিছুটা বিভ্রান্ত করতে পারে। আমি নতুন করে বলার চেষ্টা করব।

%কোনও সংরক্ষিত চরিত্র নয়।

এটির সাথে একটি চরিত্র বিশেষ অর্থ থেকে কমান্ড শেল (ওরফে cmd.exeএবং command.com)

পার্থক্য হল:

  • আপনি মোটেও সংরক্ষিত অক্ষর ব্যবহার করতে পারবেন না (তবে নীচে দেখুন)
  • আপনি বিশেষ এবং পালানোর অক্ষরগুলি ব্যবহার করতে সক্ষম হতে পারেন - কেবল সেগুলি যেমন টাইপ করে নয়

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

ব্যাট-ফাইল

আপনি যদি একটি ব্যাচ ফাইল (* .bat, * .Cmd) লিখছেন, যা কমান্ড শেল দ্বারা চালিত হয়ে যায় (কমান্ড প্রম্পট অ্যাপ্লিকেশন ওরফে) %আক্ষরিকভাবে ব্যবহার করতে (যেমন %নামের সাথে একটি ফাইল তৈরি করা , এবং বিকল্প না হিসাবে) %%পরিবর্তে আপনার একটি পরিবর্তনশীল বা পরামিতি) টাইপ করতে হবে।

উদাহরণ স্বরূপ,

  • কমান্ড echo %windir%আউটপুট উত্পাদন করে:c:\windows
  • তবে কমান্ড echo %%windir%%আউটপুট উত্পাদন করে:%windir%
  • এবং এইভাবে: কমান্ড echo %%%%windir%%%%আউটপুট উত্পাদন করে:%%windir%%

সুতরাং আপনি যদি নীচের লাইনটি হিসাবে সংরক্ষণ করেন test.batএবং চালনা করেন তবে এটি %test%শতাংশের চিহ্ন সহ সম্পূর্ণ নামের একটি ডিরেক্টরি তৈরি করবে :

md %%test%%

যদি কোনও ভেরিয়েবলের নাম না দেওয়া থাকে তবে testপরবর্তী কমান্ডটি শেষের সমান - এটি একটি ডিরেক্টরিও তৈরি করে %test%:

md %test%

... তবে দয়া করে এটি কখনও করবেন না যেহেতু একবার আপনার নামের সাথে কোনও পরিবর্তনশীল তৈরি করার পরে আপনার আদেশটি আপনার পছন্দ মতো আচরণ করবে না

আপনি যদি forএকটি BAT- ফাইলটিতে কমান্ড ব্যবহার করতে চান তবে আপনাকে দ্বিগুণও করতে হবে %যাতে forকমান্ড শেলটি না দিয়ে কমান্ড দেওয়ার এটির বিশেষ অর্থ হতে পারে:

for %%i in (*.*) do echo %%i

এটি বর্তমান ডিরেক্টরিতে ফাইলগুলির একটি তালিকা তৈরি করবে ( %%iএটির বিশেষ অর্থ রয়েছে) এবং পরবর্তী বিভাগে বর্ণিত ওয়ার্কআরাউন্ডকে %%iঅবলম্বন না করে কীভাবে এটি আক্ষরিক উত্পাদন করবেন তা আমি নিশ্চিত নই %p%( %%%%iএখানে কাজ করে না)।

%কমান্ড প্রম্পটে বিশেষ অর্থ সহ একমাত্র চরিত্র নয়। কিছু থাকতে পারে ^, <, >, |, (, ), &, !, "। এগুলির (বাদে ") বেশিরভাগই পালানো যায় - যা একটি পালানো-চরিত্রের সাথে উপস্থাপিত হয় ^যাতে আক্ষরিক চরিত্রটি specialোকানো হয়, এর বিশেষ অর্থটি দমন করে। তাও ছিল doublequoted স্ট্রিং ভিতরে তাদের বিশেষ ফাংশন হারান, এবং "একটি ব্যাকস্ল্যাশ সঙ্গে পলান হয়: \"। কিছু ক্যারেট ( ^) কে ডাবলকোট-সংযুক্ত স্ট্রিংয়ের ভিতরে দ্বিগুণ করার প্রয়োজন হতে পারে এবং যেখানে দেরী পরিবর্তনশীল প্রতিস্থাপন ঘটে ( !বিশেষ অর্থ)।

কমান্ড প্রম্পট

দুর্ভাগ্যক্রমে, যখন কমান্ড প্রম্পট উইন্ডোতে সরাসরি কমান্ডগুলি টাইপ করা হয়, দ্বিগুণ %অক্ষর তৈরি হয় %%যেমন উপরোক্ত পদ্ধতির ক্ষেত্রে এটি কার্যকর হয় না।

একটা কার্যসংক্রান্ত কমান্ড প্রক্রিয়াকরণে একটি ছল শোষণ উপস্থিত হতে পারে - আপনি আক্ষরিক পেতে পারেন %টাইপ করে ^পরে %। যদিও এই পদ্ধতিটি নির্বোধ নয়: যদি আপনার ফাইলের নামটি ডাবল উক্তিগুলিতে আবদ্ধ থাকে তবে ^আক্ষরিক অর্থে ব্যাখ্যা করা হয় (এবং উদ্ধৃতি ব্যতীত সরানো হয় না)

  • কমান্ড echo %windir%আউটপুট উত্পাদন করে:c:\windows
  • কমান্ড echo %^windir%আউটপুট উত্পাদন করে:%windir%
  • কমান্ড echo "%^windir%"আউটপুট উত্পাদন করে: "%^windir%"(অতিরিক্ত সহ ^- আমরা যা চেয়েছিলাম তা নয়)

আমি এর পরিবর্তে অন্য কাজের প্রস্তাব দিই:

  • এর মতো একটি ভেরিয়েবল তৈরি করুন: set "p=%"
  • %p%আপনার যেহেতু আক্ষরিক শতাংশের চিহ্ন প্রয়োজন তা ব্যবহার করুন: echo "%p%windir%p%"এখন আউটপুট উত্পাদন করবে:"%windir%"

একই forকমান্ডটি আক্ষরিক শতাংশ সাইন ইন কমান্ড পেতে ব্যবহার করা যেতে পারে , তবে খেয়াল করুন যে বিএটি-ফাইলের বিপরীতে forসরাসরি কমান্ডটি চাবি দেওয়ার সময় আপনি শতাংশের চিহ্নগুলি দ্বিগুণ করেন না

ফাইল সিস্টেম সংরক্ষিত অক্ষর

আপনি সাধারণত এর নামে নিম্নলিখিত সংরক্ষিত অক্ষরযুক্ত একটি ফাইল বা ডিরেক্টরি তৈরি করতে পারবেন না:, / ? < > \ : * | "NULL- চিহ্ন এবং 1 থেকে 31 কোড সহ অক্ষর; এছাড়াও .এবং স্থান শেষ অক্ষর হতে পারে না; এবং নিম্নলিখিত নাম অবৈধ আছেন: com1 com2 com3 com4 com5 com6 com7 com8 com9 lpt1 lpt2 lpt3 lpt4 lpt5 lpt6 lpt7 lpt8 lpt9 con nul prn

যাইহোক, কিছু এই সীমাবদ্ধতা সঙ্গে ফাইল পাথ prefixing বাইপাস করা যাবে \\?\ভালো: \\?\c:\test...\nul। অন্তত সংরক্ষিত নামযুক্ত ফাইল এবং স্পেস এবং ডট দিয়ে শেষ হওয়া ফাইলগুলি সেভাবে ম্যানিপুলেট করা যেতে পারে।

আরও কী, এনটিএফএস ফাইল সিস্টেম নিজে নিজে বেশ কয়েকটি নামকরণ সাবসিস্টেমগুলি সমর্থন করে: ডস, উইন্ডোজ এবং পসিক্স। এটি উইন্ডোজ সাবসিস্টেম যা উপরের সমস্ত বিধিনিষেধ রয়েছে, অন্যদিকে পসিক্স কেবলমাত্র নিষিদ্ধ করে /এবং নুল-প্রতীক।

জিএনইউ / লিনাক্স ওএস (পসিক্সের একটি সুপারসেট) এইভাবে ফাইল / ডিরেক্টরি নাম তৈরি করতে (এবং মুছে ফেলতে পারে) যা বেশিরভাগ সাধারণ উইন্ডোজ এপিআই ফাংশন (এবং তাই উইন্ডোজ প্রোগ্রামগুলি) কাজ করতে পারে না। উইন্ডোজ এক্সপিতে তাদের সাথে কাজ করা বিনামূল্যে "ইউনিক্স সাবসিস্টেমের জন্য পরিষেবাগুলি" (এসএফইউ) ইনস্টল করে সম্ভব হয়েছিল; ভিস্তার উপর এবং তৃতীয় পক্ষের উপরের সরঞ্জামগুলির জন্য এটির প্রয়োজন। আমি নিশ্চিত না যে নতুন ওবুন্টু অন উইন্ডোজ 10 সাবসিস্টেম এটি করতে পারে কিনা।


আপনি পাথ / কমান্ড নামের জন্য কিবোর্ড ট্যাগগুলি ব্যবহার করেন? যদি আপনি স্রেফ ইনলাইন কোড বিন্যাস ব্যবহার করেন তবে এটি সিনট্যাক্টিক্যালি আরও সঠিক এবং আরও পঠনযোগ্য হবে be এটি টাইপ করা আরও সহজ হবে: পরিবর্তে একটি ব্যাকটিক <kbd>
কোডি গ্রে

সম্পন্ন. আমি ভেবেছিলাম <kbd> ট্যাগ </ কেবিডি> এর তুলনায় আরও স্পষ্টরূপরেখা ছিল code blocks। তবে যদি এ জাতীয় প্রশ্ন উত্থাপিত হয় তবে আমার ধারণা তারা এ নিয়ে বিভ্রান্তি সৃষ্টি করে।
জ্যাক হোয়াইট

2
"এটি কমান্ড শেলের একটি পলায়ন প্রতীক" সঠিক নয়। সেন্টিমিডে পালানোর চরিত্রটি ^%হ'ল "এমন একটি চরিত্র যা কমান্ড লাইন পরামিতিগুলির জন্য এবং পরামিতিগুলির জন্য একটি বিশেষ অর্থ রাখে a
ডেভিডপস্টিল

আসলে, আমি শর্তগুলি মিশ্রিত ছিল। এখন উত্তর সংশোধন। ধন্যবাদ।
জ্যাক হোয়াইট

এছাড়াও দয়া করে নোট করুন, আমার উত্তরে বর্ণিত হিসাবে, %এটি forযদি forকোনও ব্যাচের ফাইলের মধ্যে থাকে তবে আপনি কেবল দ্বিগুণ হন । for %%i in (*) do echo %%iএকটি কমান্ড প্রম্পট উইন্ডোতে টাইপ করা অকার্যকর উপস্থিতি উল্লেখ করে একটি ত্রুটি তৈরি করে %%i
জ্যাক হোয়াইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.