উইন্ডোজ সিএমডি স্ক্রিপ্ট থেকে একাধিক কমান্ড কার্যকর করা হচ্ছে


136

সিরিজের বেশ কয়েকটি কাজ সম্পাদনের জন্য আমি একটি উইন্ডোজ সেন্টিমিডি স্ক্রিপ্ট লেখার চেষ্টা করছি। তবে স্ক্রিপ্টের প্রথম কমান্ডের পরে এটি সর্বদা বন্ধ হয়ে যায়।

যে কমান্ডটি পরে এটি থামায় তা হ'ল একটি বিভক্ত বিল্ড (এটি প্রাসঙ্গিক কিনা তা নিশ্চিত নয়)।

দয়া করে আমি কীভাবে এটি প্রতিটি কার্য সম্পাদন করতে এবং চালাতে পারি?

যেকোন সফ্টওয়্যার ইনস্টল করা বা রেজিস্ট্রি ইত্যাদি কনফিগার করা পুরোপুরি প্রশ্নের বাইরে - এটি ভ্যানিলা উইন্ডোজ এক্সপি ইনস্টলেশন নিয়ে কাজ করতে পারে যা আমি ভীত।

আদর্শভাবে আমি কোনও কমান্ড ব্যর্থ হলে স্ক্রিপ্টটি বাতিল করতে চাই, তবে এটি একটি "ভাল লাগছে", অপরিহার্য নয়।

ধন্যবাদ।

উত্তর:


139

আপনি যখন অন্য .bat ফাইলটি কল করেন, তখন আমি মনে করি কলটির সামনে আপনার "কল" দরকার:

call otherCommand.bat

1
হাই, মূল স্ক্রিপ্টে আমি অন্য। সিএমডি ফাইলগুলি কল করছিলাম না, তবে আমি একে আলাদা ফাইলগুলিতে বিভক্ত করেছি যাতে আমি প্রতিটি পরিবর্তে চালাতে পারি। সুতরাং, প্রতিটি কমান্ডের সামনে কল স্থাপন করা কৌশলটি মনে হয়েছে, ধন্যবাদ!
ড্যারেন গ্রেভেস

5
প্রকৃতপক্ষে, উইন্ডোজে, mvnনিজে থেকে একটি .bat ফাইল হয়, সুতরাং আপনাকে callএটির জন্য যেমন ব্যবহার করতে হবে call mvn install; সাধারণত আপনার কোনও অতিরিক্ত সিএমডি ফাইল তৈরি করার দরকার নেই।
jfpoil ব্যাখ্যা

2
নোট করুন যে ব্যাচ ফাইলগুলিতে আপনার অর্ধিকোলনের প্রয়োজন নেই। এবং আপনাকে কলটি ব্যবহার করার কারণ হ'ল এমভিএন নিজেই একটি ব্যাচ ফাইল এবং ব্যাচের ফাইলগুলিকে কল দিয়ে একে অপরকে কল করা দরকার, অন্যথায় নিয়ন্ত্রণ কলারের কাছে ফিরে আসে না।
পুশকর

@ গুলজার নাজিম - আপনি কি জানেন যে আমি যদি একা ব্যাচের ফাইলে সমস্ত কমান্ডগুলি if-অন্য বিবৃতি দিয়ে রাখতে পারি তবে আমি এটি বিভিন্ন ব্যাচের ফাইলগুলিতে বজায় রাখতে চাই না?
এনজি 2-ফান

1
আমি npmআপডেট এবং protractorপরীক্ষার সাথে অনুরূপ কিছু করার চেষ্টা করছিলাম । যতক্ষণ না আমি উপলব্ধি আমি এই উত্তর দিতে পারো প্রয়োগ ভাবিনি npmএবং protractorহয় .cmdWindows এ ফাইল।
জোশডেন

45

প্রথমটি সফল হলে কেবলমাত্র দ্বিতীয় কমান্ডটি কার্যকর করতে আপনি কমান্ডের মধ্যে && চিহ্ন ব্যবহার করতে পারেন। এখানে আরও তথ্য http://commandwindows.com/command1.htm


ধন্যবাদ, আমি উপরের স্বীকৃত উত্তরের সাথে একযোগে চেষ্টা করব।
ড্যারেন গ্রেভেস

মাভেন বিল্ড ব্যর্থ হলে এটি কি দ্বিতীয় স্ক্রিপ্টটির সম্পাদন থামিয়ে দেবে?
বরুণ আচার

সেই লিঙ্কটি নষ্ট হয়েছে: "ব্যাকএন্ড সার্ভার সময়মতো সাড়া দেয়নি App অ্যাপ সার্ভারটি খুব ব্যস্ত এবং সময় মতো অনুরোধগুলি পরিচালনা করতে পারে না।"
কেভিনজি

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

2
@TheM এ সম্পর্কে জানতে আপনি ব্যবহার করতে পারেনstart /B /WAIT calc
কোডারফোরাফুল

25

প্রথম কমান্ড কেন থামছে তা নিশ্চিত নয়। আপনি যদি এটিকে সমান্তরাল করতে পারেন তবে আপনি এর মতো কিছু চেষ্টা করতে পারেন

start cmd.exe /C 1.bat      
start cmd.exe /C 2.bat

7
আপনার কমান্ড কার্যকর হওয়ার পরে আপনি যদি শেলটি খোলা রাখতে চান তার /Kপরিবর্তে ব্যবহার করুন /C
জেলিকেলকিটিক

ব্যবহার করার প্রয়োজন নেই cmd.exeএবং start, ঠিক start x.bat1করবে।
ব্যবহারকারী 66001

23

ম্যাভেন টেস্ট স্ক্রিপ্টগুলি চালানোর জন্য আমি একটি ব্যাচ স্ক্রিপ্ট তৈরির ঠিক একই (ইশ) কাজটি করছি। সমস্যাটি হ'ল এমভিএন ক্লিন ইনস্টল সহ মাভেন স্ক্রিপ্টগুলি কল করা ... এটি নিজেই একটি স্ক্রিপ্ট এবং তাই কল এমভিএন ক্লিন ইনস্টল দিয়ে করা দরকার।

কোড যে কাজ করবে

rem run a maven clean install
cd C:\rbe-ui-test-suite 
call mvn clean install
rem now run through all the test scripts
call mvn clean install -Prun-integration-tests -Dpattern=tc-login
call mvn clean install -Prun-integration-tests -Dpattern=login-1

কলটির পরিবর্তে দ্রষ্টব্য। এটি ব্যাচ ফাইলে পরপর maven স্ক্রিপ্টগুলি ব্যবহারের অনুমতি দেবে।


5

ডাবল অ্যাম্পারস্যান্ডগুলি ব্যবহার করে দ্বিতীয় কমান্ডটি চালিত হবে, কেবলমাত্র যদি প্রথমটি সফল হয়:

cd Desktop/project-directory && atom .

যেখানে কেবলমাত্র একটি অ্যাম্পারস্যান্ড ব্যবহার করে উভয় কমান্ড চালানোর চেষ্টা করবে, এমনকি যদি প্রথম ব্যর্থ হয়:

cd Desktop/project-directory & atom .

1

আপনি যদি উইন্ডোয় চলমান থাকেন তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

ড্রাইভ:

cd "Script location"
schtasks /run /tn "TASK1"
schtasks /run /tn "TASK2"
schtasks /run /tn "TASK3"
exit

1

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

সম্পাদনা:

@ ফারুক্রসিওর পরামর্শ অনুসারে, আপনি অতিরিক্ত সফ্টওয়্যার ইনস্টল করতে না পারলে, ভিবিএসক্রিপ্ট এবং / অথবা জাভাস্ক্রিপ্ট বিবেচনা করুন। এগুলি উইন্ডোজ স্ক্রিপ্টিং হোস্টে তৈরি।


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

6
আপনি সর্বদা vbscript বা জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন। এগুলি উইন্ডোজ স্ক্রিপ্টিং হোস্টে তৈরি।
ফেরুরসিও

0

নোট করুন যে ব্যাচ ফাইলগুলিতে আপনার অর্ধিকোলনের প্রয়োজন নেই। এবং আপনাকে কলটি ব্যবহার করার কারণ হ'ল এমভিএন নিজেই একটি ব্যাচ ফাইল এবং ব্যাচের ফাইলগুলিকে কল দিয়ে একে অপরকে কল করা দরকার, অন্যথায় নিয়ন্ত্রণ কলারের কাছে ফিরে আসে না।

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