Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вырезать часть строки в bat 
:(
    Опции темы
newbie2009
Дата 7.7.2013, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 8.2.2009

Репутация: нет
Всего: нет



Добрый день.

Имею  следующий код. Почему и как оно не хочет адекватно обрезать строку str?
Код

@Echo Off
Set $I=1& For %%i In (%*) Do Set $P=%%i& Call :Dilplay
Exit
:Dilplay
    call :len %$P% len
    set /a len=len-4   
        echo %len%
    set str=%$P:~0,len%
    echo %str%
  rem del %$P%
  Set /a $I=%$I%+1
GoTo :EOF

rem ----------------------------------------------------------------------------------
rem    function:        len
rem    param:        string as string
rem    return value:    length string as integer 
rem ----------------------------------------------------------------------------------
:len (string)
set opt=%~1
set /a n=0
:loop_len
if not "%opt%"=="" (
    set opt=%opt:~1%
    set /a n=%n% + 1
    goto loop_len
)
endlocal & set /a %2=%n%
exit /b 0
rem ----------------------------------------------------------------------------------

PM MAIL   Вверх
01MDM
Дата 12.7.2013, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



newbie2009,  извини, но в твой код не вникал, там полный бред, не обижайся:
Код

@echo off
setlocal enabledelayedexpansion

set "string=%*"

:: Так можно определить длину строки %string%

set "s=%string%"

:len
set "s=%s:~0,-1%" && set /a len+=1
if defined s goto:len

echo "%string%" is %len% simbols

:: Так можно обрезать первые четыре символа

echo "%string:~4%"

:: Последние четыре

echo "%string:~0,-4%"

:: Средние четыре с позиции 4

echo "%string:~0,3%%string:~7%"

:: если для "обрезки" нужна переменная, то обратите внимание на инструкцию "setlocal enabledelayedexpansion"

set "num1=3"
set "num2=4"

:: оставляем четыре символа с четвертой позиции

echo "!string:~%num1%,%num2%!"



Это сообщение отредактировал(а) 01MDM - 12.7.2013, 06:49


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0995 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.