CMD/BAT - [решено] Вставка текста из буфера обмена

Аватара пользователя
Iska

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение Iska »

Опять Вы не о том, что я хотел бы услышать.



Ну, пробуйте:



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "tokens=2 delims=:" %%i in ('chcp') do (
	set sPrevCP=%%i
	>nul chcp 1251
)
for /f "usebackq delims=" %%i in (
	`@"%systemroot%\system32\mshta.exe" "javascript:var s=clipboardData.getData('text'); {try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(s)} catch (e){}} close();" ^
	1^|more`
) do set sShare=%%i
>nul chcp %sPrevCP%
if defined sShare (
	echo %sShare%| >nul 2>&1 findstr.exe /i /r /c:"[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]" && (
		set sShare=%sShare::=.%
		echo [!sShare!]
	)
)
endlocal
exit /b 0
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение Iska »

Powershell:



Код:

Код: Выделить всё

$var = Get-Clipboard
if ($var -match ':') {
$var = $var -replace ':','.'
}
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение Sisin »

Цитата Iska:



Ну, пробуйте:
CMD/BAT - [решено] Вставка текста из буфера обмена




Если в буфере 0000:00:00, то работает,

если 000000:00:00 - тоже работает, а не должно.



Проверка по маске нужна, чтобы в буфере не было комбинации отличной от маски. И чтобы выводилось echo "ERROR" в случае несоответствия, а затем exit /b 0.



т.е.

Если буфер соответствует маске 0000:00:00, то заменить ":" на "." и вывести echo [!sShare!] и exit /b 0,

а если нет, то echo "ERROR" и exit /b 0.
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение DJ Mogarych »

Цитата Sisin:



Если в буфере 0000:00:00, то работает,

если 000000:00:00 - тоже работает, а не должно.
CMD/BAT - [решено] Вставка текста из буфера обмена






Код:

Код: Выделить всё

$var = Get-Clipboard
if ($var -match "^\d{4}:") {
$var = $var -replace ':','.'
}
else {
write-host -fore red "ERROR!!!1"
}
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение Sisin »

DJ Mogarych, спасибо, но мне надо исключительно в bat.
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение DJ Mogarych »

Sisin, моя недоработка, приношу Вам свои извинения.



Добавьте в единственной строке то, что помечено выделенным:



Код:

Код: Выделить всё

echo %sShare%| >nul 2>&1 findstr.exe /i /r /c:"^[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]$" && (

или:

Код:

Код: Выделить всё

echo %sShare%| >nul 2>&1 findstr.exe /i /r /b /e /c:"[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]" && (
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение Sisin »

Цитата Iska:



Добавьте в единственной строке то, что помечено выделенным:
CMD/BAT - [решено] Вставка текста из буфера обмена




а echo "ERROR" и exit /b 0?
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение Sisin »

Sisin, моя недоработка, приношу Вам свои извинения.



Добавьте в единственной строке то, что помечено выделенным:



Код:

Код: Выделить всё

echo %sShare%| >nul 2>&1 findstr.exe /i /r /c:"^[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]$" && (

или:

Код:

Код: Выделить всё

echo %sShare%| >nul 2>&1 findstr.exe /i /r /b /e /c:"[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]" && (
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Вставка текста из буфера обмена

Сообщение Iska »

Iska, подскажите, пожалуйста, почему эта строка:



echo %sShare%| >nul 2>&1 findstr.exe /i /r /c:"^[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]$" && (



имеет ограничение на количество цифр??

например, я хочу увеличить маску до 12345678:12345678:12345678, изменил на:

"^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]:[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]:[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$"



а строка не срабатывает. Вроде ограничений быть не должно.



Если попробовать добавить цифры в маску здесь:
CMD/BAT - [решено] Вставка текста из буфера обмена




то findstr.exe выдает ошибку.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»