একটি ব্যাচ ফাইলে প্রেরিত একটি যুক্তি থেকে একটি অক্ষর মুছুন


1

ধরুন একটি ব্যাচ ফাইলে, get.bat বলুন, কিছু আর্গুমেন্ট দিয়ে বলা হয়। এখন exec.bat executes এবং এটি এই আর্গুমেন্ট প্রক্রিয়া করতে হবে।

কখনও কখনও (কিন্তু সর্বদা নয়), একটি আর্গুমেন্ট একটি পিছনে স্ল্যাশ (যেমন। "C:\a\b\" )। আর্গুমেন্ট সংখ্যা সংশোধন করা হয় না এবং (শুধুমাত্র) এই আর্গুমেন্ট আর্গুমেন্ট তালিকায় যে কোন জায়গায় প্রদর্শিত হতে পারে।

কিভাবে আমার। বিট ফাইল অপসারণ করতে পারেন \ মধ্যে \"উদাহরণস্বরূপ, পেতে "C:\a\b"?


হালনাগাদ:

আমি নীচের উদাহরণ চেষ্টা করেছি এবং তৃতীয় এক কাজ করছে না।
এটা শুধু বলেন there should not be a SET here

SET var=C:\
IF %var:~-1%==\ SET var=%var:~0, -1%
@ECHO %var%

SET var2="C:\\
IF %var2:~-2%==\\ SET var2=%var2:~0, -2%
@ECHO %var2%

SET var3="C:\"
IF %var3:~-2%==\a" SET var3=%var3:~0, -2%
@ECHO %var3%

3
Stackoverflow একটি বর্ণন আছে stackoverflow.com/questions/2952401/...
nixda

উত্তর:


2

আপনি var3 সেটিং করছি "সি: \" , এবং শেষ দুটি অক্ষর তুলনা \ একটি " ? নিচে দেখুন এবং এই পৃষ্ঠা ব্যাচ substring নিষ্কাশন সঙ্গে সাহায্যের জন্য।

SET var=C:\
IF %var:~-1%==\ SET var=%var:~0,-1%
@ECHO %var%
REM Output: C:

SET var2="C:\
IF %var2:~-1%==\ SET var2=%var2:~0,-1%
@ECHO %var2%
REM Output: "C:

SET var3="C:\"
IF %var3:~-2,1%==\ SET var3=%var3:~0,-2%"
@ECHO %var3%
REM Output: "C:"

ধন্যবাদ, এটা কাজ করে। কিন্তু আপনি কি জানেন যে আমি এই প্রাপ্তি পরামিতিটির জন্য কীভাবে কাজ করতে পারি? উদাহরণস্বরূপ, আমি একটি নতুন পরিবর্তনশীল var দিয়ে কাজ করতে চাই না, আমি সরাসরি% 1,% 2,% 3 ... ম্যানুয়ালি করতে চাই। আমি খুঁজে পাই% 1 =% var% অথবা SET% 1 =% var% এই পরামিতিগুলির মান পরিবর্তন করে না।
user565739

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