پاسخ به:مجموعه ترفندهای تحت داس ♦تایپیک با امتیاز ویژه♦
شنبه 16 فروردین 1393 10:39 AMحذف فاصله و کوتیشن از عبارت وارد شده در ورودی فایلهای Batch
در صورتی که قصد نوشتن یک فایل Batch را داشته باشید که به عنوان ورودی از کاربر عبارتی را دریافت کند، این امر بسیار مهم خواهد بود که در سمت راست، چپ و یا بین حروف عبارت وارد شده از کاراکتر فاصله (Space) و یا دو کوتیشن (" ") استفاده نشده باشد؛ زیرا وجود هر یک از این کاراکترها، استفاده شما از متغیر مدنظر را دچار مشکل میکند. در این ترفند یاد خواهید گرفت که چگونه کاراکترهای فاصله و دو کوتیشن را از ورودی اسکریپت حدف نمایید.
فرضاً اگر متغیر شما str باشد، با استفاده از این کد، متغیر خود را اصلاح کنید:
set str=%str: =%
به عنوان مثال برنامهی شما به چنین شکلی میتواند باشد:
@echo off
set /p str=
set str=%str: =%
echo.%str%
pause
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
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
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
توجه داشته باشید که کد بالا، فقط کوتیشن را از دو طرف عبارت ورودی حذف مینماید.set /p str=
for /f "useback tokens=*" %%a in ('%str%') do set str=%%~a
echo.%str%
pause
تشکرات از این پست
unknown
shokraneh