Показать полную графическую версию : MODE и Scrolling
Instant_SR
26-11-2013, 09:11
Поискал, что-то не нашел...
использую в *.BAT обычный "мод"
MODE CON COLS=80 LINES=30
Но при таком "раскладе" пропадает вертикальная прокрутка, а выполнение команд хочется отслеживать...
Как учесть этот факт? поделитесь опытом?
использую »
Не используйте. Или заведите себе «tee.exe». Или напишите свой аналог «mode», реализующий потребное поведение.
Foreigner
26-11-2013, 21:21
Instant_SR, В PowerShell решается просто:
$a = $host.ui.rawui.buffersize
$a.height = 150 # кол-во строк в буфере консольного окна
$host.ui.rawui.buffersize = $a
В cmd.exe можно выполнить:
powershell -c "$a=$host.ui.rawui.buffersize;$a.height=250;$host.ui.rawui.buffersize=$a"
Instant_SR
27-11-2013, 12:35
PS - не используется, сторонний софт тоже не годится. Еще варианты? Если не использовать MODE тогда какими методами можно контролировать размеры окна?
PS - не используется, сторонний софт тоже не годится. Еще варианты? »
Свистеть ;). Ни у пакетных файлов, ни у WSH нет прямого доступа ни к консольным функциям WinAPI, ни к консольным функциям .Net.
Кстати, а почему такое отвращение к стороннему ПО? Возьмите банальный код:
Module MainModule
Public Sub Main()
Console.WindowWidth = 80
Console.WindowHeight = 30
Console.SetBufferSize(80, 9000)
End Sub
End Module
Найдите в «%SystemRoot%\Microsoft.NET\Framework» в одной из папок с именем от «v2.0.XXX» и выше файл «vbc.exe», скомпилируйте исполняемый файл и пользуйте.
Instant_SR
02-12-2013, 17:25
данный вариант для меня чуть сложноват, плюс, насколько я могу судить с первого взгляда, данный способ помогает решить задачу локально на моей машине, меня же интересует, клиентсая часть - т.е. пользователи по ссылке обращаются к моем у.bat файлу из сети и если у них не будет компиляции, то они увидят обычный вид командной строки. Подиму тему...
т.е. пользователи по ссылке обращаются к моем у.bat файлу из сети и если у них не будет компиляции, »
Что неясно из:
… скомпилируйте исполняемый файл и пользуйте. »
? Коль они обращаются к Вашему пакетному файлу по сети, надо полагать, Вы разрешили на клиентских машинах использование UNC-путей в качестве текущего каталога:
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"DisableUNCCheck":REG_DWORD
(применительно только к NT4/2k/XP/2003/Vista/2008 и cmd.exe)
CMD.EXE по умолчанию не поддерживает UNC-пути. Если FAR попытаться
выполнить команду командного процессора, в случае, если текущий путь -
UNC, то в консоль выводится информация:
"Указанный путь был использован при запуске CMD.EXE в качестве текущей
папки. CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная
папка Windows. Ошибка в синтаксисе команды."
CMD.EXE был запущен с указанием '\\server\share' в качестве текущего
каталога. Пути UNC не поддерживаются. По умолчанию выбран каталог
Windows.
"CMD.EXE was started with the above path as the current directory. UNC
paths are not supported. Defaulting to Windows directory."
(выводимая информация может отличаться в NT4/W2k/XP/2003/Vista/2008)
Параметр "DisableUNCCheck" позволяет решить эту проблему. Значение
параметра может быть одним из следующих:
0 - выводить предупреждающее сообщение и устанавливать текущий путь
равный системной папке Windows.
1 - не выводить предупреждающее сообщение и пытаться выставить текущий
путь равный UNC пути.
По умолчанию в Windows параметр равен 0.
Рекомендуемое значение 1.
(Cmd.exe does not support UNC names as the current directory (http://support.microsoft.com/kb/156276/en-us))
? Вот и положите скомпилированный файл рядышком с Вашим пакетным файлом и ссылайтесь на него из этого пакетного файла по относительной ссылке.
Instant_SR
02-12-2013, 19:21
UNC пути не используются, данное сообщение выводится, иногда, правда... Обращал внимание, при выполнении некоторых (сторонних) скриптов при работе от имени пользователей...
Попробую, скомплировать данный текст, но есть несколько вопросов:
1 - формат в котором сохранить текст?
2 - синтаксис для компиляции?
данное сообщение выводится, иногда, правда... »
Выводится всегда при попытке запуска с UNC-ресурса или попытке сделать UNC-ресурс текущим каталогом.
Попробую, скомплировать данный текст, но есть несколько вопросов:
1 - формат в котором сохранить текст?
2 - синтаксис для компиляции? »
1. Хоть в ANSI/1251, хоть в Unicode LE. Расширение файла — «.vb».
2.
"путь\vbc.exe" "путь\Имя файла.vb"
В текущем каталоге том же каталоге, где находится файл с исходным текстом, будет создан одноимённый с Имя файла исполняемый CUI-файл. Например:
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe" "E:\Песочница\0334\0001.vb"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.