s.rozekabood
10-01-2013, 01:58 PM
در صورتی که قصد نوشتن یک فایل 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
توجه داشته باشید که کد بالا، فقط کوتیشن را از دو طرف عبارت ورودی حذف مینماید.
حذف فاصله از سمت چپ، سمت راست و بین حروف عبارت ورودی
فرضاً اگر متغیر شما 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
توجه داشته باشید که کد بالا، فقط کوتیشن را از دو طرف عبارت ورودی حذف مینماید.