Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] сократить имя ПК (http://forum.oszone.net/showthread.php?t=251613)

Titan-nic 16-01-2013 19:06 2068311

сократить имя ПК
 
Уважаемые гуру.
помогите пожалуйста в создании батника.

Нужно выдернуть первые 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 2068324

Убираем последние 8 символов
Код:

%COMPUTERNAME:~0,-8%
замена - на цифру 0
Код:

%COMPUTERNAME:-=0%

Titan-nic 16-01-2013 19:33 2068331

В том то и дело, что после символа "-" не 8 символов, а по разному, есть и 10, есть и 1 (минимум 1 символ, максимум не известно).

zion87 16-01-2013 19:40 2068335

тогда может быть так
Код:

@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 2068350

Спасибо...
Работает.

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


Время: 00:47.

Время: 00:47.
© OSzone.net 2001-