আমি উপরের সমাধানগুলিতে একটি মন্তব্য যোগ করতে চাই:
এই সমস্ত বাক্যবিন্যাস পুরোপুরি ঠিকঠাকভাবে কাজ করে যদি আপনার আদেশটি পথের সাথে দেখা হয় বা যদি স্থানটি স্পেস বা বিশেষ বর্ণনাকারী ব্যতীত কোনও সেমিডপথ থাকে।
তবে যদি আপনি কোনও ফোল্ডারে কোনও এক্সিকিউটেবল কমান্ডটি ব্যবহার করার চেষ্টা করেন যা কোন পাথে বিশেষ অক্ষর রয়েছে তবে আপনার কমান্ডের পথটি ডাবল কোট (") এ আবদ্ধ করতে হবে এবং তারপরে ফর / এফ সিন্ট্যাক্স কাজ করবে না।
উদাহরণ:
$ for /f "tokens=* USEBACKQ" %f in (
`""F:\GLW7\Distrib\System\Shells and scripting\f2ko.de\folderbrowse.exe"" Hello '"F:\GLW7\Distrib\System\Shells and scripting"'`
) do echo %f
The filename, directory name, or volume label syntax is incorrect.
অথবা
$ for /f "tokens=* USEBACKQ" %f in (
`"F:\GLW7\Distrib\System\Shells and scripting\f2ko.de\folderbrowse.exe" "Hello World" "F:\GLW7\Distrib\System\Shells and scripting"`
) do echo %f
'F:\GLW7\Distrib\System\Shells' is not recognized as an internal or external command, operable program or batch file.
অথবা
`$ for /f "tokens=* USEBACKQ" %f in (
`""F:\GLW7\Distrib\System\Shells and scripting\f2ko.de\folderbrowse.exe"" "Hello World" "F:\GLW7\Distrib\System\Shells and scripting"`
) do echo %f
'"F:\GLW7\Distrib\System\Shells and scripting\f2ko.de\folderbrowse.exe"" "Hello' is not recognized as an internal or external command, operable program or batch file.
সেক্ষেত্রে, কমান্ডটি ব্যবহার করতে এবং এর ফলাফলটি একটি ভেরিয়েবলের মধ্যে সঞ্চয় করার একমাত্র সমাধান হ'ল কমান্ডের মধ্যে একটিতে অস্থায়ীভাবে ডিফল্ট ডিরেক্টরি সেট করা:
pushd "%~d0%~p0"
FOR /F "tokens=* USEBACKQ" %%F IN (
`FOLDERBROWSE "Hello world!" "F:\GLW7\Distrib\System\Layouts (print,display...)"`
) DO (SET MyFolder=%%F)
popd
echo My selected folder: %MyFolder%
ফলাফলটি তখন সঠিক:
My selected folder: F:\GLW7\Distrib\System\OS install, recovery, VM\
Press any key to continue . . .
অবশ্যই উপরের উদাহরণে, আমি ধরে নিয়েছি যে আমার ব্যাচ স্ক্রিপ্টটি আমার নির্বাহযোগ্য কমান্ডের মধ্যে একটির মতো একই ফোল্ডারে রয়েছে যাতে আমি "% ~ d0% ~ p0" সিনট্যাক্সটি ব্যবহার করতে পারি। যদি এটি আপনার ক্ষেত্রে না হয় তবে আপনার কমান্ডের পথটি সনাক্ত করতে এবং ডিফল্ট ডিরেক্টরিটিকে তার পথে পরিবর্তন করতে হবে।
নোট: যারা অবাক করে তাদের জন্য, এখানে ব্যবহৃত স্যাম্পল কমান্ডটি (একটি ফোল্ডার নির্বাচন করতে) হ'ল FOLDERBROWSE.EXE। আমি এটি ওয়েবসাইটে f2ko.de ( http://f2ko.de/en/cmd.php ) এ পেয়েছি ।
জটিল পথ দিয়ে অ্যাক্সেসযোগ্য এই জাতীয় নির্দেশের জন্য কারও কাছে যদি আরও ভাল সমাধান থাকে তবে আমি এটি শুনে খুব আনন্দিত হব।
গিলেজ