দুটি সম্ভাবনা রয়েছে।
আপনি করা ভুলে গেছি %id%
মধ্যে jstack
কল।
jstack %id% > jstack.txt
সুতরাং পুরো সঠিক ব্যাচের ফাইলটি হ'ল:
@echo off
set /p id=Enter ID:
echo %id%
jstack %id% > jstack.txt
এবং / অথবা ২. আপনি এটি কোডে রেখেছিলেন (এবং আমাদের প্রশ্নে বলতে ভুলে গিয়েছিলেন) তবে আপনি যখন ব্যাচ ফাইলটি চালিয়েছেন তখন আপনি কোনও আইডি টাইপ না করে এন্টার কীটি চাপলেন (1234 বলুন)।
যা ঘটছে তা এই দুটি ভুলের ফল:
jstack
আপনি যে আইডি সরবরাহ করেছেন তা দিয়ে কল করা হবে।
তবে আপনার ক্ষেত্রে (আপনি যে কোড সরবরাহ করেছেন সে অনুসারে) আপনি কোনও পরিবর্তনশীল ছাড়াই এটিকে ডাকলেন। তুমি লিখেছিলে:
jstack > jstack.txt
সুতরাং আপনি যখন jstack
কোনও পরিবর্তনশীল না দিয়ে চালিত হন এটি নিম্নলিখিতগুলি ছাড়িয়ে যায়:
Terminate batch file Y/N?
আপনার দ্বিতীয় ভুল আপনি যদি এর পরিবর্তে একটি মান প্রদান যখন প্রোগ্রাম আপনাকে জিজ্ঞাসা এর লিখুন টেপা হলে: Enter ID:
। আপনি যদি এই মুহুর্তে কোনও আইডি %id%
রাখতেন , 1234 বলুন, ভেরিয়েবলটি সেই মান হয়ে উঠবে, আমাদের ক্ষেত্রে 1234. তবে আপনি কোনও মান সরবরাহ করেননি এবং পরিবর্তে এন্টার টিপেছিলেন। আপনি যখন ভেরিয়েবলটিকে কোনও মান দেন না এবং যদি সেই ভেরিয়েবলটি অন্য কোনও কিছুর আগে সেট না করা থাকে, তবে ভেরিয়েবলটি কমান্ডের %id%
প্রম্পটে সেট করা হয় set
!! সুতরাং এখন %id%
সেট করা আছে Enter ID:
যা আপনার স্ক্রিনে প্রতিবেদন হিসাবে ব্যাচ ফাইলে অনুরোধ করা হয়েছিল আগে আপনি jstack ডেকেছিলেন।
তবে আমি সন্দেহ করি যে jstack %id% > jstack.txt
আপনার ব্যাচের ফাইল কোডটি আপনার সাথে রয়েছে %id
(এবং প্রশ্নটি ভুল করে এটি বাদ দেওয়া হয়েছে) এবং আপনি কোনও আইডি টাইপ না করেই এন্টার চাপুন। ব্যাচ প্রোগ্রামটি তখন আইডি প্রতিধ্বনিত হয়, যা এখন "আইডি প্রবেশ করান:", এবং তারপরে দৌড়েjstack Enter ID: > jstack.txt
জাস্টাক নিজেই ইনপুট প্রতিধ্বনিত করেছে, একটি ভুলের মুখোমুখি হয়েছে এবং সমাপ্ত করতে বলেছে।
এবং এই সব jstack.txt ফাইল লিখিত ছিল।