উইন্ডোজ ব্যাচ ফাইলের একক লাইনে একাধিক কমান্ড


111

ইউনিক্সে আমরা একক লাইনে একাধিক কমান্ড লিখতে পারি:

$ date ; ls -l ; date

আমি উইন্ডোজ এ একই জিনিস চেষ্টা করেছি:

 > echo %TIME% ; dir ; echo %TIME

তবে এটি সময় মুদ্রিত করে এবং আদেশটি কার্যকর করে না dir

আমি কীভাবে এটি অর্জন করতে পারি?


উত্তর:


181

ব্যবহার করুন:

echo %time% & dir & echo %time%

এটি মেমরি থেকে, আধা-কোলন বিভাজকের bashএবং অন্যান্য ইউনিক্স শেলের সমতুল্য।

এছাড়াও রয়েছে &&(বা ||) যা প্রথম সফল (বা ব্যর্থ) হলে কেবল দ্বিতীয় আদেশটি কার্যকর করে, তবে একক অ্যাম্পারস্যান্ডটি &আপনি এখানে যা খুঁজছেন তা।


এটি আপনাকে একই সময় দেবে সম্ভবত পরিবেশের ভেরিয়েবলগুলি কার্যকর করার পরিবর্তে পড়ার ক্ষেত্রে মূল্যায়ন করার ঝোঁক রয়েছে।

বিলম্বিত সম্প্রসারণটি চালু করে আপনি এটি পেতে পারেন:

pax> cmd /v:on /c "echo !time! & ping 127.0.0.1 >nul: & echo !time!"
15:23:36.77
15:23:39.85

কমান্ড লাইন থেকে এটি প্রয়োজন। আপনি যদি কোনও স্ক্রিপ্টের মধ্যে এটি করছেন, আপনি কেবল ব্যবহার করতে পারেন setlocal:

@setlocal enableextensions enabledelayedexpansion
@echo off
echo !time! & ping 127.0.0.1 >nul: & echo !time!
endlocal

উত্তর করার জন্য ধন্যবাদ. ইস্যুটি এটি আংশিকভাবে কাজ করে। প্রথম ও শেষ% TIME% একই সময় এমনকি যখন কমান্ড (মাঝখানে) অন্তত 40 সেকেন্ড সম্পূর্ণ করতে সময় লাগে ছাপে (আমি Dir কমান্ডের পরিবর্তে আমার স্ক্রিপ্টটি রান)।
রঘুরাম

1
কারন কমান্ডটি কার্যকর করার পরিবর্তে পড়লে পরিবেশের ভেরিয়েবলগুলি মূল্যায়ন করা হয়। আমি উত্তর আপডেট করব।
paxdiablo

তবুও বিষয়টি বজায় রয়েছে। স্ক্রিপ্টটি কোড 1 সহ প্রস্থান করছে তবে এখনও দ্বিতীয় প্রতিধ্বনি একই সময় প্রিন্ট করে দেখুন এই ওপ 12: 57: 56.93 দেখুন একটি থ্রেড প্রস্থান করা হয়েছে যখন 3 টি থ্রেড চলছিল। 12: 57: 56.93
রঘুরাম

3
আমি সমস্যাটি সমাধান করার পরিবর্তে time /t(বা echo.|time) ব্যবহার করার প্রবণতা রেখেছি echo %time%
জোয়ি

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