PDA

Показать полную графическую версию : [решено] сократить имя ПК


Titan-nic
16-01-2013, 19:06
Уважаемые гуру.
помогите пожалуйста в создании батника.

Нужно выдернуть первые 4 символа из названия ПК и вставить в переменную.
Именя пк разные в формате XXXX-YYYYYYY
Где:
XXXX - содержит разные символы (например: BUH4). У этой части строгое количество символов = 4м
YYYYY - содкржит разные символы и имеет разную длину.
Все это разделяется "-"
Мне нужно выдернуть из имени ПК именно XXXX

Это нужно для отправки письма письма

вот что у меня есть.

@echo off

set postFrom=mail@mail.ru
set postTo=mail@mail.ru
set postLogin=mail
set postPass=123456789
set postSUB="%COMPUTERNAME% ERROR"
set post="error"
set postServer=server:25

"%PATHPOSTGRESBACKUP%\exe\mail\sendEmail.exe" -f "%postFrom%" -t "%postTo%" -s "%postServer%" -xu "%postLogin%" -xp "%postPass%" -u "%postSUB%" -m "%post%"

отправляю при помощи sendEmail

мне нужно, чтоб в %postSUB% попадало только первых 4 символа из %COMPUTERNAME%
возможно реализовать?

zion87
16-01-2013, 19:20
Убираем последние 8 символов

%COMPUTERNAME:~0,-8%

замена - на цифру 0

%COMPUTERNAME:-=0%

Titan-nic
16-01-2013, 19:33
В том то и дело, что после символа "-" не 8 символов, а по разному, есть и 10, есть и 1 (минимум 1 символ, максимум не известно).

zion87
16-01-2013, 19:40
тогда может быть так

@echo off
echo %COMPUTERNAME% >name.txt
for /f "delims=-" %%H in ('more +0 "name.txt"') do set name=%%H
del name.txt
echo %name%
pause


весь код

@echo off
echo %COMPUTERNAME% >name.txt
for /f "delims=-" %%H in ('more +0 "name.txt"') do set name=%%H
del name.txt

set postFrom=mail@mail.ru
set postTo=mail@mail.ru
set postLogin=mail
set postPass=123456789
set postSUB="%name% ERROR"
set post="error"
set postServer=server:25

"%PATHPOSTGRESBACKUP%\exe\mail\sendEmail.exe" -f "%postFrom%" -t "%postTo%" -s "%postServer%" -xu "%postLogin%" -xp "%postPass%" -u "%postSUB%" -m "%post%"

Titan-nic
16-01-2013, 19:50
Спасибо...
Работает.

ага, прям так и вписал. большое спасибо.




© OSzone.net 2001-2012