0

مجموعه ترفندهای ♦ تحت داس ♦

 
takround
takround
کاربر طلایی1
تاریخ عضویت : آذر 1392 
تعداد پست ها : 5906
محل سکونت : خراسان رضوی

پاسخ به:مجموعه ترفندهای تحت داس ♦تایپیک با امتیاز ویژه♦
شنبه 16 فروردین 1393  10:39 AM

حذف فاصله و کوتیشن از عبارت وارد شده در ورودی فایل‌های Batch

 

در صورتی که قصد نوشتن یک فایل Batch را داشته باشید که به عنوان ورودی از کاربر عبارتی را دریافت کند، این امر بسیار مهم خواهد بود که در سمت راست، چپ و یا بین حروف عبارت وارد شده از کاراکتر فاصله (Space) و یا دو کوتیشن (" ") استفاده نشده باشد؛ زیرا وجود هر یک از این کاراکترها، استفاده شما از متغیر مدنظر را دچار مشکل می‌کند. در این ترفند یاد خواهید گرفت که چگونه کاراکترهای فاصله و دو کوتیشن را از ورودی اسکریپت حدف نمایید.

 

 

حذف فاصله از سمت چپ، سمت راست و بین حروف عبارت ورودی
فرضاً اگر متغیر شما str باشد، با استفاده از این کد، متغیر خود را اصلاح کنید:
set str=%str: =%
به عنوان مثال برنامه‌ی شما به چنین شکلی می‌تواند باشد:
@echo off
set /p str=
set str=%str: =%
echo.%str%
pause

حذف فاصله از سمت چپ عبارت ورودی
فرضاً اگر متغیر شما str باشد، با استفاده از این کد، متغیر خود را اصلاح کنید:
for /f "tokens=* delims= " %%a in ("%str%") do set str=%%a
به عنوان مثال برنامه‌ی شما به چنین شکلی می‌تواند باشد:
@echo off
set /p str=
for /f "tokens=* delims= " %%a in ("%str%") do set str=%%a
echo.%str%
pause

حذف فاصله از سمت راست عبارت ورودی
فرضاً اگر متغیر شما str باشد، با استفاده () از این کد، متغیر خود را اصلاح کنید:
for /l %%a in (1,1,31) do if "!str:~-1!"==" " set str=!str:~0,-1!
به عنوان مثال برنامه‌ی شما به چنین شکلی می‌تواند باشد:
@echo off
set /p str=
for /l %%a in (1,1,31) do if "!str:~-1!"==" " set str=!str:~0,-1!
echo.%str%
pause

حذف کوتیشن از دو طرف عبارت ورودی
فرضاً اگر متغیر شما str باشد، با استفاده از این کد، متغیر خود را اصلاح کنید:
for /f "useback tokens=*" %%a in ('%str%') do set str=%%~a
به عنوان مثال برنامه‌ی شما به چنین شکلی می‌تواند باشد:
@echo off
set /p str=
for /f "useback tokens=*" %%a in ('%str%') do set str=%%~a
echo.%str%
pause
توجه داشته باشید که کد بالا، فقط کوتیشن را از دو طرف عبارت ورودی حذف می‌نماید.
 

 

قدر لحظات رو باید دانست

تشکرات از این پست
unknown shokraneh
دسترسی سریع به انجمن ها