CMD/BAT - MODE и Scrolling

Ответить
Аватара пользователя
Instant_SR

CMD/BAT - MODE и Scrolling

Сообщение Instant_SR »

Поискал, что-то не нашел...

использую в *.BAT обычный "мод"



Код:

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

MODE CON COLS=80 LINES=30

Но при таком "раскладе" пропадает вертикальная прокрутка, а выполнение команд хочется отслеживать...

Как учесть этот факт? поделитесь опытом?
Аватара пользователя
Iska

Re: CMD/BAT - MODE и Scrolling

Сообщение Iska »

Цитата Instant_SR:



использую
CMD/BAT - MODE и Scrolling




Не используйте. Или заведите себе «tee.exe». Или напишите свой аналог «mode», реализующий потребное поведение.
Аватара пользователя
Foreigner

Re: CMD/BAT - MODE и Scrolling

Сообщение Foreigner »

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

Re: CMD/BAT - MODE и Scrolling

Сообщение Instant_SR »

PS - не используется, сторонний софт тоже не годится. Еще варианты? Если не использовать MODE тогда какими методами можно контролировать размеры окна?
Аватара пользователя
Instant_SR

Re: CMD/BAT - MODE и Scrolling

Сообщение Instant_SR »

Цитата Instant_SR:



PS - не используется, сторонний софт тоже не годится. Еще варианты?
CMD/BAT - MODE и Scrolling




Свистеть Изображение. Ни у пакетных файлов, ни у 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

Re: CMD/BAT - MODE и Scrolling

Сообщение Instant_SR »

данный вариант для меня чуть сложноват, плюс, насколько я могу судить с первого взгляда, данный способ помогает решить задачу локально на моей машине, меня же интересует, клиентсая часть - т.е. пользователи по ссылке обращаются к моем у.bat файлу из сети и если у них не будет компиляции, то они увидят обычный вид командной строки. Подиму тему...
Аватара пользователя
Iska

Re: CMD/BAT - MODE и Scrolling

Сообщение Iska »

Цитата Instant_SR:



т.е. пользователи по ссылке обращаются к моем у.bat файлу из сети и если у них не будет компиляции,
CMD/BAT - MODE и Scrolling




Что неясно из:


Цитата Iska:



… скомпилируйте исполняемый файл и пользуйте.
CMD/BAT - MODE и Scrolling




? Коль они обращаются к Вашему пакетному файлу по сети, надо полагать, Вы разрешили на клиентских машинах использование 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
)



? Вот и положите скомпилированный файл рядышком с Вашим пакетным файлом и ссылайтесь на него из этого пакетного файла по относительной ссылке.
Аватара пользователя
Instant_SR

Re: CMD/BAT - MODE и Scrolling

Сообщение Instant_SR »

UNC пути не используются, данное сообщение выводится, иногда, правда... Обращал внимание, при выполнении некоторых (сторонних) скриптов при работе от имени пользователей...

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

1 - формат в котором сохранить текст?

2 - синтаксис для компиляции?
Аватара пользователя
Instant_SR

Re: CMD/BAT - MODE и Scrolling

Сообщение Instant_SR »

Цитата Instant_SR:



данное сообщение выводится, иногда, правда...
CMD/BAT - MODE и Scrolling




Выводится всегда при попытке запуска с UNC-ресурса или попытке сделать UNC-ресурс текущим каталогом.




Цитата Instant_SR:



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

1 - формат в котором сохранить текст?

2 - синтаксис для компиляции?
CMD/BAT - MODE и Scrolling




1. Хоть в ANSI/1251, хоть в Unicode LE. Расширение файла — «.vb».

2.



Код:

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

"путь\vbc.exe" "путь\Имя файла.vb"

В текущем каталоге том же каталоге, где находится файл с исходным текстом, будет создан одноимённый с Имя файла[/i] исполняемый CUI-файл. Например:



Код:

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

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe" "E:\Песочница\0334\0001.vb"
Ответить

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