Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для f0r_ce

Пользователь


Сообщения: 55
Благодарности: 2

Профиль | Отправить PM | Цитировать


megaloman, спасибо за правки.
Получившийся код
Код: Выделить весь код
:: Копировать в буфер обмена имя ПК с параметром в виде имени ПК при запуске данного файла
@Echo Off & rem отключение вывода не информативных строчек
	If "%~1"=="" (
		cls
		Echo ***********************************************************************
		Echo *
		Echo * Не введён параметр - IP ПК
		Echo *
		Echo ***********************************************************************
		Echo !!!  Ошибка: Задайте имя компьютера!
		Echo. & rem вывод пустой строки
		Pause
		Exit /B 1
	)
	Set "IP=%~1"

Rem C помощью ping извлекаем имя ПК из IP
	chcp 437 >nul
	Set "Key1=Pinging"
	Set "IPname=Not Found"
	FOR /F "usebackq tokens=1,2,3 delims= " %%i IN (`2^>nul Ping  -a -n 1 -4 %IP%`) DO (
		If /I "%Key1%"=="%%i" If /I "[%IP%]"=="%%k" Set "IPname=%%j"
	)

Rem Ip Not Found
	If "%IPname%"=="Not Found" (
		Cls
		Echo Computer with IP = %IP% not found
		Echo.
		Pause
		Exit /B 2
	)

Rem Берём только часть имени ПК до точки
	FOR /F "delims=." %%i IN ("%IPName%") Do Set "IPName=%%i"
	chcp 866 >nul
	Echo Имя ПК: %IPname%

Rem Cкопировать в буфер обмена текст из переменной / данная команда работает только в ОС начиная с Windows 7
	<nul (Set /P "IPName=%IPName%"|clip)

Rem задержка перед закрытием окна 10 сек
	>nul Timeout /T 10

Exit /B 0

Только не понятно, почему не получается написать по русски строчку "Echo Computer with IP = %IP% not found" даже если перед этим переключить кодировку на 1251 или 866?

Отправлено: 11:10, 26-02-2019 | #15