উইন্ডোজের উদ্ধৃতি চিহ্ন ব্যবহার না করে আমি কীভাবে কমান্ড লাইনে ফাঁকা স্থানগুলি রক্ষা করব?


87

উদাহরণস্বরূপ উদ্ধৃতি চিহ্ন ছাড়া এই আদেশের বিকল্প কী:

CD "c:\Documents and Settings"

আমি উদ্ধৃতি চিহ্নগুলি ব্যবহার করতে চাই না তার পুরো কারণটি হ'ল এই আদেশটি কাজ করে:

   SVN add mypathname\*.*

কিন্তু এই আদেশটি কাজ করে না:

   SVN add "mypathname\*.*"

সমস্যাটি হ'ল আমি যখন ফাঁকা জায়গাগুলির সাথে আমার পাথের জন্য মাইপথনামটি পরিবর্তন করি তখন আমার পুরো জিনিসটি উদ্ধৃত করা দরকার। উদাহরণ স্বরূপ:

SVN add "c:\Documents and Settings\username\svn\*.*"

তবে যখন আমি এটি চেষ্টা করি তখন আমি নীচের ত্রুটি বার্তাটি পাই:

svn: warning: 'c:\Documents and Settings\username\svn\*.*' not found

2
আপনার অর্থ হ'ল উদ্ধৃতি চিহ্ন ব্যবহার করতে না চাওয়ার জন্য আপনার কাছে ভাল কারণ রয়েছে।
থমাস

কেন, আপনার উদ্ধৃতি চিহ্ন কীটি নষ্ট হয়েছে? :)
slhck

3
@ এসএলএইচকি আমার শিফট কী এবং 2 নাম্বার কী পুরোপুরি ঠিক আছে চিন্তা করবেন না! আমি একটি কমান্ড ব্যবহার করছি যা ওয়াইল্ডকার্ডের যখন তারা উদ্ধৃতি চিহ্নের অভ্যন্তরে উপস্থিত হবে তখন অনুমতি দেবে না!
ডেভিড

1
@ মারকবুথ এবং @ ওয়েল্টেন ওয়ান্ডারার চেষ্টা করুন তবে দুর্ভাগ্যক্রমে এটি কার্যকর হয় না। সমস্ত 3 টি ক্ষেত্রে আমি একটি "এসএনএন: ত্রুটি সমাধানের ক্ষেত্রে ....." পেয়েছি
ডেভিড

1
আপনি কি নামের (ডকুমে ting 1) পুরানো 8.3 ফর্ম্যাটিং চেষ্টা করেছেন?
জাস্টিন পিয়ার্স 4'11

উত্তর:


54

এটি প্রায় সবই আমার পক্ষে কাজ করে তবে আপনি সম্ভবত 5 লাইনের চেষ্টা করেছেন .. একটি ক্যারেট প্রতীক (the) দিয়ে স্থানটি পালিয়ে যাওয়ার চেষ্টা করেছেন

1 C:\Documents and Settings\user>cd ..

2 C:\Documents and Settings>cd ..

3 C:\>cd Documents and Settings

4 C:\Documents and Settings>cd..

5 C:\>cd Documents^ and^ Settings

6 C:\Documents and Settings>cd..

7 C:\>cd C:\documents and settings

8 C:\Documents and Settings>cd..

9 C:\>

অথবা যেমন নীচে যেখানে ক্যারেট সত্যিই সমস্ত পার্থক্য করে।

ক্যারেট প্রতীক মত নীচের থেকে দেখতে আপনার উত্তর হতে পারে, নীচে 3 লাইন দেখুন।

1 C:\>"c:\Documents and Settings\a.bat"
gaga

2 C:\>c:\Documents and Settings\a.bat
'c:\Documents' is not recognized as an internal or external command,
operable program or batch file.

3 C:\>c:\Documents^ and^ Settings\a.bat
gaga

C:\>

যেহেতু সাবভার্সন প্রোগ্রামারটির সরঞ্জাম, তাই এটি এসও এর পক্ষে উপযুক্ত হতে পারে। এখানে সম্পর্কিত প্রশ্ন stackoverflow.com/questions/757435/… এটি হতে পারে আপনি
এসএএনএন-

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

5
ক্যারেট প্রতীকটি সরাসরি আমার প্রশ্নের উত্তর দেয় তাই আমি আপনার উত্তরটি গ্রহণ করব। দুর্ভাগ্যক্রমে এসভিএন কমান্ড এটি স্বীকৃত বলে মনে হচ্ছে না! যদি আমি এটি চেষ্টা করি তবে আমি এই ত্রুটি বার্তাটি "এসএনএন 'সি:' একটি কার্যকরী অনুলিপি নয় get যদিও এর চারপাশে আমার আরও একটি উপায় রয়েছে এবং এটি কেবল প্রথমে ডিরেক্টরিতে 'সিডি' করতে হবে তারপরে একবার এসভিএন কমান্ডটি কার্যকর করুন। এমনকি আমি & কন্ডাক্টর অপারেটর ব্যবহার করে দুটি কমান্ড একসাথে চেইন করতে পারি: সিডি "সি: \ ডকুমেন্টস এবং সেটিংস \ ব্যবহারকারীর নাম \ এসএনএন" এবং এসভিএন যুক্ত *। *
ডেভিড

সিডির উদাহরণে ক্যারেটের দরকার নেই, সিডির জন্য স্থান
পলায়নের

1
@ চিংগিস interesting আকর্ষণীয় .. এটি ডিআইআর এর পক্ষেও কাজ করে না। অনুলিপি এবং দির উভয়ই কমান্ডে নির্মিত are যদিও এটি সিডি। যদিও অনুলিপি এবং দির প্যারামিটার হিসাবে একটি ফাইলের নাম নেয়। ডসটিপস ফোরামের বিষয়ে জিজ্ঞাসা করার যোগ্য হতে পারে
বার্লপ

35

আমি দেখতে পেলাম যে অবস্থানের এক অংশের চারপাশে উদ্ধৃতিগুলি কাজ করে। আপনার ক্ষেত্রে:

SVN add C:\"Documents and Settings"\username\svn\*.*

যদিও এটি উদ্ধৃতি চিহ্নগুলি ব্যবহার করে, তবে লক্ষ্য করার জন্য গুরুত্বপূর্ণ বিষয়টি হ'ল তারাগুলি উদ্ধৃতি চিহ্নগুলির বাইরে রয়েছে , সুতরাং তারা এখনও সঠিকভাবে কাজ করে।


7
এছাড়াও যদি কেউ ন্যূনতম হতে চান, তবে কেউ কেবল স্থানটি বা কেবল স্থানগুলি বিশিষ্ট অক্ষরগুলির চারপাশে উদ্ধৃতিগুলি করতে পারেন, উদাহরণস্বরূপ সি: \> সিডি নথি "এবং সে" টাইটিং (যদিও এটি সিডির উদাহরণ হলেও, একজনকে পালানোর দরকার নেই)
স্পেসস

1
অনেক ধন্যবাদ. সম্ভব হলে আমি 4 বা 5 বার আপগ্রেড করতে পারি ..
সায়কা

@ সায়কা প্রশ্নটি করেছিল "" উইন্ডোজের উদ্ধৃতি চিহ্ন ব্যবহার না করে আমি কমান্ড লাইনে স্পেসগুলি কীভাবে
পালাব

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

26

উত্তরগুলি প্রদান করে যে এটি মায়া করে যে এটি কাজ করে, তবুও সত্য আপনি সাধারণ স্পেসিফিক সিএমডি আর্গুমেন্টে ছিঁচতে পারবেন না। এটি প্রমাণ করা সহজ:

  1. echo %1হিসাবে " " সংরক্ষণ করুন test.bat। এই ব্যাচ ফাইলটি প্রথম যুক্তিটি আউটপুট দেয় যা সেমিডি আমাদের পাস করে।

  2. এখন, চেষ্টা করুন এবং চালানোর test.bat, মান নির্ধারণের %1জন্য foo bar। (নোট করুন fooএবং এর মধ্যে একটি স্পেস চর রয়েছে bar))

  3. কয়েক বছরের জন্য ট্রায়াল-এন্ড ত্রুটি এবং বুঝতে পারেন যে এটি করার কোনও উপায় নেই । লোকেরা ব্যবহার করে পালানোর পরামর্শ দিবে ^, তবুও test.bat foo^ barআউটপুট আসবে না foo bar

সুতরাং, আউটপুট পাওয়ার কোনও উপায় নেই foo bar, এবং আমরা যে নিকটতম পেতে পারি তা হ'ল test.bat foo" "barযা উত্পাদন করে foo" "bar, বা চালিত test.bat "foo bar"যা উত্পাদন করে "foo bar"


এখন, কারণ অন্যান্য উত্তর প্রদর্শিত কাজে কারণ cdনেই এটা নিজের এর অতিরিক্ত পার্সিং স্বাভাবিক যুক্তি ক্ষণস্থায়ী আচরণ (চলিত থেকে বিচ্যুত %1, %2, %3এবং সাধারণত ব্যাচ ফাইলের মধ্যে ইত্যাদি)।

উদাহরণস্বরূপ, অদ্ভুত আদেশটি বিবেচনা করুন:

cd c:\documents and settings \some folder with spaces

কেন এটি কাজ করে? এই কারণে cd নিজেই কিছু 7 যোগদান সমতুল্য করছেন স্বাভাবিক এক যৌক্তিক এক মধ্যে আর্গুমেন্ট। সেন্টিমিডি আর্গুমেন্ট পাস করার নিয়ম অনুসারে, আমরা 7 টি যুক্তি দেখি:

  1. c:\documents
  2. and
  3. settings
  4. \some
  5. folder
  6. with
  7. spaces

এটি যেমন cd7 টি যুক্তিগুলিকে একটি যৌক্তিক হিসাবে যুক্ত করেছে, এর মতো কিছু করছে array.join(" ")যা পথ তৈরি করে:

c:\documents and settings \some folder with spaces

মনে রাখবেন যে এই আচরণটি কেবলমাত্র (এবং কিছু অন্যান্য ক্রিয়া) কাছে অদ্ভুতcd । এটির সাথে সাধারণ যুক্তি পাস করার কোনও সম্পর্ক নেই।


আসলে, cdঅন্য এক বিশেষত্ব আছে। মনে রাখবেন আমরা উপরে বলেছি যে আমরা আউটপুটটি পাই না foo bar? আমরা যে নিকটতম আউটপুটটি পেতে পারি তা হল চালানো:

test.bat foo" "bar

যা উত্পাদন করে foo" "bar, বা:

test.bat "foo bar"

যা উত্পাদন করে "foo bar", বা:

test.bat "foo "bar

যা উত্পাদন করে "foo "bar, বা:

test.bat foo" bar"

যা উত্পাদন করে foo" bar", বা:

test.bat "foo b"ar

যা উত্পাদন করে "foo b"ar, বা:

test.bat fo"o bar"

যা উত্পাদন করে fo"o bar", বা:

test.bat fo"o ba"r

যা উত্পাদন করে fo"o ba"r, বা:

test.bat "fo"o" bar"

যা উত্পাদন করে "fo"o" bar", বা:

test.bat "f""o""o"" ""b""a""r":

যা উত্পাদন করে "f""o""o"" ""b""a""r"বা এমনকি:

test.bat """"f"""o""""o"" ""ba"""r"""""""""":

যা উত্পাদন করে """"f"""o""""o"" ""ba"""r""""""""""

উপরের সমস্ত উদাহরণগুলির মধ্যে একটি মিল রয়েছে, যা তারা foo barচরিত্রগুলি ছাঁটাই করার পরে তৈরি করবে "cdএর লেখক অবশ্যই এটি উপলব্ধি করতে পেরেছিলেন ... যদি আমরা এই cdঅদ্ভুত আচরণ থেকে অনুধাবন করি যা এটি প্রাপ্ত সমস্ত আদেশকে ছাঁটাই করে" , এই সমস্ত আদেশকে কাজ করার অনুমতি দেয়:

  • cd c:\documents and settings

  • cd "c:\documents and settings"

  • cd "c:"\"documents and settings"

  • cd c:\"documents" "and" "settings"

  • cd c:\"docu"ments an"d set"tings"

  • cd c:"\"docu"ments an"d set"ti"""ngs

  • cd "c"":""\"docu"ments an"d set"ti"""ngs

  • cd "c"":""\"do""cu"me"nts a"n""d set"ti"""ngs

  • cd c"""":""""\"""d"""oc""""u"me"""""nt"s a"n""d set"""""""ti""""ngs


15
কি বিশৃঙ্খলা উইন্ডোজ ব্যাচের প্রোগ্রামিং ...
ক্লানজেন

ধন্যবাদ। আমরা নির্ধারণ করতে পারি যদি সিডি ব্যবহার করছে argv[]বা GetCommandLine()? পেস্টবিন.
com

7

সংক্ষিপ্ত-ফাইল নামটি বাতাসের মতো কাজ করে।

"ই: \ প্রগ্রাগা ~ 1 \ জাভা \গ্রহণ \গ্রহণ"

স্মৃতিশক্তি বাড়ানোর জন্য ..;)


8
সংক্ষিপ্ত ফাইল নাম অক্ষম করা থাকলে এটি কাজ করতে পারে না
phuclv


2

8.3 প্রতিস্থাপনের বিষয়ে যারা কথা বলছেন তাদের জন্য দয়া করে নীচের দুটি জিনিস নোট করুন:

  • 8.3 এনটিএফএসে অক্ষম (বা সক্ষম) এ সেট করা যেতে পারে, তাই এটি সর্বদা উপস্থিত নাও হতে পারে।
  • কোনও ফাইল / ফোল্ডারের 8.3 নাম একই ফোল্ডারের অন্যান্য জিনিস তৈরি করে, নাম পরিবর্তন করে বা মুছে ফেলা ছাড়া বিজ্ঞপ্তি ছাড়াই পরিবর্তন করতে পারে।

সুতরাং c:\docume~1নির্দেশ করতে পারেন:

  • কোথাও নেই (অবৈধ হবে)
  • আপনি চান ফোল্ডার
  • আরেকটি ফোল্ডার
  • সময়ের সাথে একটি পরিবর্তনশীল ফোল্ডার

এটি নিরাপদ নয়, যদি না আপনি সংক্ষিপ্ত নামটি পান এবং এটি পারমাণবিক ক্রিয়াকলাপে ব্যবহার না করেন।

যদিও এগুলি খুব অস্বাভাবিক যে তারা পরিবর্তন করে, এটি সাধারণ যে তাদের অস্তিত্ব নেই।

যদি আপনি জানতে চান যে কোনও নির্দিষ্ট ফোল্ডার / ফাইলের জন্য 8.3 রয়েছে কিনা, এটি /Xএকটি dirকমান্ডের সাথে প্যারামিটার দিয়ে পরীক্ষা করুন , বা forকেবলমাত্র সেই অংশটি পাওয়ার জন্য এটি এ্যাপ্যাপসুলেট করুন etc.

এনটিএফএসে 8.3 সক্ষম / অক্ষম করার বিষয়ে আরও তথ্যের জন্য, এই মাইক্রোসফ্ট সমর্থন নিবন্ধটি দেখুন:
https://support.microsoft.com/en-us/help/121007/how-to-disable-8-3-file-name- সৃষ্টি-অন-NTFS-পার্টিশন


0

@ পাং-এর পোস্টে অনুসরণ করা, এবং অন্যরা সংক্ষিপ্ত নাম এবং সমস্যাগুলি নিয়ে আলোচনা করছেন, একটি দীর্ঘ নাম একটি সংক্ষিপ্ত নামকে গতিশীল সমাধানের উপায় এখানে:

for %A in ("C:\Some\long path\which must exist\to be resolved") do @echo %~sA

তারপরে, আপনি অবশ্যই আশেপাশের উদ্ধৃতিগুলির চেয়ে সংক্ষিপ্ত নামটি ব্যবহার করতে পারেন।

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