Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: Cokolok
Дата сообщения: 13.08.2009 15:51
так как убрать права администратора ? если ты не на админе сидиш.. ?
Цитата:
Цитата:я неявляюсь пользователем Admin


Cokolok
тогда могут быть проблемы с правами доступа - если пользователь Admin ввел соответствующие ограничения, а у вашей учетной записи нет полномочий эти права изменить.


ну типо чтото такое... просто кода я вырезаю файл из папки админ... оно пишет( "вы дейстительно хоитите перекинуть файл для чтений" "имя файла") и там да или нет... может в этом ошибка ? как эту шнягу убрать ?

Автор: 7b
Дата сообщения: 14.08.2009 07:58
KapralBel

cmdow - его установить как та надо? Просто через .exe не устанавливается.
Через cmdow - install тоже не кактит. Но штучка полезная, хотелось бы ее по-юзать.
Подскажите плз, что с ней делать, как ее инсталировать.
Автор: 01MDM
Дата сообщения: 14.08.2009 08:20
7b
Его вообще не надо устанавливать, просто поместить cmdow.exe в %PATH% или рядом с батником.
Автор: piva_net
Дата сообщения: 14.08.2009 12:59
Люди, подскажите, плз., как из командной строки (батника) убить нитку процесса? Все, что нашел - только убийство процесса целиком.
Можно с использованием внешних программ.
Автор: alekspioner
Дата сообщения: 15.08.2009 00:07
Может кто сделать батник, который будет набирать номер по Dial Up и не дожидаясь соединения отключать вызов, требуется для отправки номера на пейджер через телефонную линию используя модем Robotics Courier.
Автор: Cosmogor
Дата сообщения: 15.08.2009 05:17
01MDM

Спасибо, вполне доступное объяснение.
Не то что в справке, в справке вроде по русски
написано, а не понятно.


Добавлено:
Помогите со скриптом.
Написал скрипт проверки диска.

Код:

for %%i in (d) do (
if exist %%i:\ GOTO YES 2>nul
if not exist %%i:\ GOTO NO 2>nul
)
:YES
msg * YES!
EXIT
:NO
msg * NO!
EXIT


Но он реагирует только на жёсткие диски, а
хотелось бы, что-бы реагировал только на CD,DVD диски.

Спс.
Автор: vitrzn
Дата сообщения: 15.08.2009 11:28
А как можно удалить из папки все файлы, за исключением 1.txt и 1.bat ?

Пробовал по аттрибутам или предварительно перемещать (что нужно) перед удалением, но это не совсем удобно.

Надо удалить не ВСЁ, а всё кроме
Автор: 01MDM
Дата сообщения: 15.08.2009 11:39
Cosmogor
Два варианта:

Код:
@echo off
setlocal

:: Определяем все диски
for /f "tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:1 %%i %%j
goto:eof

:: Первый вариант (надежней и не показывает вирт. сд)
:1
set "drive=%1%2"
2>nul wmic cdrom where id="%drive:~-2%" get drive /value | 1>nul findstr = && (
echo YES! %drive:~-2%
) || (
echo NO! %drive:~-2%
)

:: Второй
:1
set "drive=%1%2"
fsutil fsinfo drivetype %drive:~-2% | 1>nul findstr "[-].*[-]" && (
echo YES! %drive:~-2%
) || (
echo NO! %drive:~-2%
)

Автор: vitrzn
Дата сообщения: 15.08.2009 14:52
01MDM
КАК ОБЫЧНО ВЫ НА ВЫСОТЕ !!!!
СПАСИБО !!!
Автор: Cosmogor
Дата сообщения: 15.08.2009 15:24
01MDM

Я конечно извиняюсь за надоедливость, но
у меня не работает 1 вариант, да и 2 тоже.
Всё показывает диск А: NO (хотя А:, и другие диски есть)
И если можно, то растолковать мне значения
('fsutil fsinfo drives ^|
А в особенности строчку
2>nul wmic cdrom where id="%drive:~-2%" get drive /value | 1>nul findstr =
Пожалуйста.
Автор: GhoolVandal
Дата сообщения: 15.08.2009 16:16
Есть какая-то странная проблема.

на серваке надо батником вывести в файл некоторое количество кириллического текста
(в кодировке Windows 1251)

Если пишу в консоли руками команду
chcp 1251 - всё срабатывает
Если использую её в BAT-файле - на ней исполнение BAT-файла ОСТАНАВЛИВАЕТСЯ. Отклика (Текущая кодовая страница: 1251) не получаю.
Но если нажму ctrl+c - исполнение BAT-файла продолжается, и всё работает корректно.

А вот теперь любопытный момент - если на том же компе запускаю этот же батник, но ЗАЙДЯ ПОД ТЕМ ЖЕ ПОЛЬЗЗОВАТЕЛЕМ В СЕАНСЕ ТЕРМИНАЛА (rdp - mstsc) - всё работает!!


на других компах всё исполняется нормально и без терминала

Но на некоторых серваках - вот такая байда.

Что можно сделать?


Добавлено:
Автор: 01MDM
Дата сообщения: 15.08.2009 18:28
Cosmogor
Проверил на другом компьютере с флопаком. Все работает. Оба варианта. Возможна ошибка из-за концевых пробелов. Если с этим все нормально то, что показывают эти три команды:

Код:
fsutil fsinfo drives
fsutil fsinfo drivetype буква:
wmic cdrom where id="буква:" get drive /value
Автор: ScreamWolf
Дата сообщения: 15.08.2009 20:35
Был блок, так что с опазданием, но пишу...

igor_andreev

Цитата:
1.
Код:
@echo off
for /l %%a in (1,1,80) do set /p ="."<nul & ping -n 1 localhost>nul 2>&1
В выполняющемся в данный момент батнике отключи вывод всех команд и ошибок на экран и вставляй изредка по тексту set /p ="."<nul


Цитата:
Отличный пример... тока вот время от чего зависит...
попробовал сменить ping -n <X> где x - как я думал будут секунды, но увы не то...
А еще было бы лучше если использовать скрипт какой нить чтоб виндусовскую строку (как через msiexec) в окошечке отдельном показал)))

Как например мне установить всю ту же строку из точек, но только так чтобы она от начала до конца длилась например 5 минут (300 сек)? Еще бы лучше было бы если бы был бы ввод времени через переменную в секундах типа set timeout=300
И по поводу
Цитата:
В выполняющемся в данный момент батнике отключи вывод всех команд и ошибок на экран и вставляй изредка по тексту set /p ="."<nul

не понял...

Повторяюсь...
[more=Сам батничек...]echo off
set vbs=%tmp%\~.vbs
set htm=%tmp%\~.htm
echo On Error Resume Next >%vbs%
echo Set objExplorer = WScript.CreateObject _ >>%vbs%
echo ("InternetExplorer.Application", "IE_") >>%vbs%
echo objExplorer.Navigate "file:///%htm%" >>%vbs%
echo objExplorer.ToolBar = 0 >>%vbs%
echo objExplorer.StatusBar = 0 >>%vbs%
echo objExplorer.Width = 330 >>%vbs%
echo objExplorer.Height = 160 >>%vbs%
echo objExplorer.Left = 300 >>%vbs%
echo objExplorer.Top = 200 >>%vbs%
echo objExplorer.Visible = 1 >>%vbs%
echo Do While (objExplorer.Document.Body.All.OKClicked.Value = "") >>%vbs%
echo Wscript.Sleep 250 >>%vbs%
echo Loop >>%vbs%
echo strPassword = objExplorer.Document.Body.All.UserPassword.Value >>%vbs%
echo strButton = objExplorer.Document.Body.All.OKClicked.Value >>%vbs%
echo objExplorer.Quit >>%vbs%
echo Wscript.Sleep 250 >>%vbs%
echo If strButton = "Cancelled" Then >>%vbs%
echo Wscript.Quit >>%vbs%
echo Else >>%vbs%
echo Wscript.Echo strPassword >>%vbs%
echo End If >>%vbs%
echo ^<SCRIPT LANGUAGE="VBScript"^> >%htm%
echo Sub RunScript >>%htm%
echo OKClicked.Value = "OK" >>%htm%
echo End Sub >>%htm%
echo Sub CancelScript >>%htm%
echo OKClicked.Value = "Cancelled" >>%htm%
echo End Sub >>%htm%
echo ^</SCRIPT^> >>%htm%
echo ^<TITLE^>Ввод пароля:^</TITLE^> >>%htm%
echo ^<BODY^> >>%htm%
echo ^<font size="2" face="Arial"^> >>%htm%
echo Введите пароль:^&nbsp;^&nbsp;^&nbsp; ^</font^>^<font face="Arial"^> >>%htm%
echo ^<input type="password" name="UserPassword" size="40"^>^</font^>^</p^> >>%htm%
echo ^<input type="hidden" name="OKClicked" size = "20"^> >>%htm%
echo ^<input id=runbutton class="button" type="button" value=" OK " >>%htm%
echo name="ok_button" onClick="RunScript"^> >>%htm%
echo ^&nbsp;^&nbsp;^&nbsp; >>%htm%
echo ^<input id=runbutton class="button" type="button" value="Cancel" >>%htm%
echo name="cancel_button" onClick="CancelScript"^> >>%htm%
echo ^</BODY^> >>%htm%
for /f "tokens=*" %%a in ('cscript //nologo "%vbs%"') do set pass=%%a
del /q /f "%vbs%"
del /q /f "%htm%"
echo ‚ўҐ«Ё Ї а®«м: %pass%
pause >nul[/more]

Цитата:
проблема в том что IE не реагирует на ENTER/ESC/SPACE, только мышкой клавишу нажать нада...
еще трабла: Окно IE хочеться поставить на передний план, а оно у меня почему-то сзади CMD
и на последок...:: Можно ли запретить в окне IE клавиши управления окном, т е "Свернуть", "Развернуть" и "Закрыть"??? что бы были лишь активными клавиши "Cancel" и "ОК"...

KapralBel

Цитата:
cmdow — изменение параметров и видимости дос-окна

не катит - палится каспером ((( Утилитку уже узал раньше, пока ее кодик в БД антивирусов не забили, а жаль хороша была...
Цитата:
функция "Запуск в режимах MIN MAX HIDE" - так же мне не подходит, т к не пользуюсь данным типом ПО

я как раз и имел ввиду cmdow. Но нашел маленькое решение...

Скриптик на Яве

HIDE
Код: var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",0);
Автор: romby
Дата сообщения: 15.08.2009 22:02
Как отличить переменную от папки с таким же названием?
( Например, есть переменная TEMP и папка, которая называется так же - %TEMP% )
Автор: Cosmogor
Дата сообщения: 15.08.2009 22:25
01MDM



Цитата:
что показывают эти три команды:

Вот что показывает:
fsutil fsinfo drives
Диски: А:\ С:\ D:\ E:\ F:\

fsutil fsinfo drivetype буква:
буква: — Нет такой корневой папки

wmic cdrom where id="буква:" get drive /value
Отсутствуют экземпляры класса.



Цитата:
Так же попробуй:

Код:
@echo off
setlocal

for /f "tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:1 "%%i" "%%j"
goto:eof

:1
set "drive=%~1%~2"
fsutil fsinfo drivetype %drive:~-2%


А вот это, то что доктор прописал, спасибо
Автор: ewild
Дата сообщения: 16.08.2009 01:01

Цитата:
vitrzn пишет:
А как можно удалить из папки все файлы, за исключением 1.txt и 1.bat ?
Пробовал по аттрибутам или предварительно перемещать (что нужно) перед удалением, но это не совсем удобно. Надо удалить не ВСЁ, а всё кроме


Цитата:
01MDM пишет:
vitrzn

Код: @echo off
for /f "tokens=*" %%i in ('dir /b /a-d C:\test ^| findstr /v "1.txt 1.bat"') do del "C:\test\%%i"
Автор: 01MDM
Дата сообщения: 16.08.2009 08:34
Cosmogor

Цитата:
буква: — Нет такой корневой папки


Вообще-то подозревалась буква одного из существующих дисков (c:, d:, e: и т.д). Для проверки.

Автор: ScreamWolf
Дата сообщения: 16.08.2009 14:58
а по мою душу ни-ни?
На предыдущей страничке очень много чего от меня написано...
Автор: Cosmogor
Дата сообщения: 16.08.2009 17:46
ScreamWolf

Цитата:

bat2exec - не принял к компеляции следующую строку типа: if /i %aa%==aa goto aa
че делать?


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

Да, ещё для твойх задач идеальное средство
будет autoit . Эксперементируй
Автор: ScreamWolf
Дата сообщения: 17.08.2009 11:44
Cosmogor

Цитата:
Да, ещё для твойх задач идеальное средство
будет autoit . Эксперементируй

Скачал - будем пробовать познавать =)
Автор: NetOptic
Дата сообщения: 18.08.2009 09:01
Здравствуйте! Нужна ваша помощь.
Я при помощи ".bat" файла и консольной программы " Ztnbatch " рву "PPPoE" сессию на модеме "Zyxel P660RU EE" подключенного к ПК по технологии "Ethernet" и настроенного в режиме "Routing".

Код:
ztnbatch.exe -h 192.168.1.1 -p 1234 -c "wan adsl reset"
ping -n 60 localhost>nul
Автор: 7b
Дата сообщения: 18.08.2009 14:14
Вопрос.

Есть "blat — отправка почты из консоли", а есть ли что нить похожее, но на прием почты?
Хочется, что бы почта сама сваливалась в указанную мною папку.
Допустим письмо прилетело на ???@yandex.ru, прога просканала мыло и сохранила на d:\Почта.(файлы,html,txt).

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

Заранее спасибо!
Автор: HaK1R
Дата сообщения: 18.08.2009 16:09
Таскаю ноут с собой на работу, и каждый раз меняю настройки ЛАН соединения. Проблема уже озвучивалась в какой-то теме на ru-board и кто-то предлагал свой вариант решения, но я не могу найти.
В принцыпе если тко-нибудь напомнит как сохранять настройки в файл и потом от туда их брать, остальное сдалаю сам.
если не ошибаюсь то это в netsh lan
Автор: noklaf
Дата сообщения: 18.08.2009 16:31
На терминальном сервере цепляясь по RDP запускается программа.
Как сделать так, что бы выскакивало окно какую именно программку запустить (Например: если вы хотите запустить 1С8 нажмите да, если 1С77 нажмите нет).
Очень часто встречающаяся проблема =)
Автор: HaK1R
Дата сообщения: 18.08.2009 16:40
noklaf
виндосовское окно или консольное?
Автор: mozers
Дата сообщения: 18.08.2009 17:07
7b
Цитата:
Есть "blat — отправка почты из консоли", а есть ли что нить похожее, но на прием почты?
GetMail того же автора.
Автор: 01MDM
Дата сообщения: 18.08.2009 17:40
HaK1R

Цитата:
Таскаю ноут с собой на работу, и каждый раз меняю настройки ЛАН соединения.

Да, как-то обсуждалось. Кажется пришли к выводу, что лучше всего сохранить настройки для дома и для работы в разные файлы. И в зависимости от того где находишься, их применять. Смотри в сторону 'netsh dump' и netsh exec'

Код:
экспорт:
netsh dump 1>home.txt
или
netsh interface ip dump 1>home.txt

импорт:
netsh exec home.txt
Автор: HaK1R
Дата сообщения: 18.08.2009 19:58
01MDM
Я сделал по-другому.
чтобы настройки были в одном файле
вот только одна проблема. у одного соединения один dns а у другого еще и альтернативный есть.
если знаешь как добавить альтернативный dns то буду признателен

Код: @echo off
ping -n 1 "ya.ru" 1>nul&& goto :end
echo Change sittengs
(netsh interface ip show address | findstr /e 10.192.68.236 1>nul) && (
echo Unet
cnic "Lan" -d
netsh interface ip set address name="Lan" static 10.50.158.60 255.255.0.0 10.50.9.100 1 1>nul
netsh interface ip set dns name="Lan" static 91.192.189.2 1>nul
cnic "Lan" -c
goto :end
) || (
echo Interzet
cnic "Lan" -d
netsh interface ip set address name="Lan" static 10.192.68.236 255.255.252.0 10.192.68.1 1 1>nul
netsh interface ip set dns name="Lan" static 192.168.248.21 1>nul
cnic "Lan" -c
goto :end
)

:end
echo Ok
pause 1>nul
Автор: 01MDM
Дата сообщения: 18.08.2009 20:49
HaK1R
Не знаю. Ты все таки создай файл настроек (netsh dump), это netsh-скрипт, может там найдешь ответ.
Автор: Ortios
Дата сообщения: 18.08.2009 20:54
HaK1R

Цитата:
как добавить альтернативный dns

На память не помню но, по-моему, как-то так:

Код: netsh interface ip set dns name="Lan" static 192.168.248.22 index=2

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.