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

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

Instant_SR 26-11-2013 09:11 2261717

MODE и Scrolling
 
Поискал, что-то не нашел...
использую в *.BAT обычный "мод"
Код:

MODE CON COLS=80 LINES=30
Но при таком "раскладе" пропадает вертикальная прокрутка, а выполнение команд хочется отслеживать...
Как учесть этот факт? поделитесь опытом?

Iska 26-11-2013 10:51 2261742

Цитата:

Цитата Instant_SR
использую »

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

Foreigner 26-11-2013 21:21 2262055

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 2262333

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

Iska 27-11-2013 22:46 2262784

Цитата:

Цитата Instant_SR
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 2265525

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

Iska 02-12-2013 18:24 2265561

Цитата:

Цитата Instant_SR
т.е. пользователи по ссылке обращаются к моем у.bat файлу из сети и если у них не будет компиляции, »

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

Цитата Iska
скомпилируйте исполняемый файл и пользуйте. »

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

UNC пути не используются, данное сообщение выводится, иногда, правда... Обращал внимание, при выполнении некоторых (сторонних) скриптов при работе от имени пользователей...
Попробую, скомплировать данный текст, но есть несколько вопросов:
1 - формат в котором сохранить текст?
2 - синтаксис для компиляции?

Iska 02-12-2013 19:43 2265619

Цитата:

Цитата Instant_SR
данное сообщение выводится, иногда, правда... »

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


Цитата:

Цитата Instant_SR
Попробую, скомплировать данный текст, но есть несколько вопросов:
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"


Время: 19:32.

Время: 19:32.
© OSzone.net 2001-