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

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

Автор: hiqmax
Дата сообщения: 12.10.2009 10:05
Dr29BArt
Если ХР, то на панели управления Система -> Дополнительно -> Переменные среды
Автор: Mosl
Дата сообщения: 12.10.2009 11:04
01MDM
спасибо. А как это в скрипте? Так?
@echo off
bitsadmin /transfer "test" /download /priority normal http://ya.ru "%cd%\index.html"

if not exist index.html (
rasdial "vpn_name" /disconnect
rasdial "vpn_name" vpn_login vpn_password
)
2>nul del index.html
Автор: 01MDM
Дата сообщения: 12.10.2009 12:22
Mosl
Да, так. Но все таки wget побыстрей работает, а bitsadmin у меня пару раз вылетал на ровном месте с ошибкой.
Только слегка измени строчку:

Код:
bitsadmin /transfer "test" /download /priority normal http://ya.ru "%~dp0index.html"
Автор: Dr29BArt
Дата сообщения: 12.10.2009 15:19
hiqmax, ёлки-палки спасибо конечно, но я подразумевал ответ в виде кода исполняемого файла *.bat, в данной теме. Может всё таки есть идеи?
Автор: Mosl
Дата сообщения: 12.10.2009 17:30
01MDM
не сработал скрипт:
Код: @echo off
cmd /c wget ya.ru

if not exist index.html (
rasphone.exe -h "Beeline"
rasphone.exe -d "Beeline"
)
2>nul del index.html
Автор: 01MDM
Дата сообщения: 12.10.2009 19:12
Mosl
Не знаю. У меня оба варианта работают. Может яндекс забанили в украине? Попробуй google.com или еще какую-нибудь "легкую" страницу.
Вот вывод wget:

Код:
> wget ya.ru
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Users\mdm\BIN\Gnu/etc/wgetrc
--2009-10-12 20:20:35-- http://ya.ru/
Распознаётся ya.ru... 93.158.134.8, 213.180.204.8, 77.88.21.8
Устанавливается соединение с ya.ru|93.158.134.8|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 4891 (4,8K) [text/html]
Сохраняется в каталог: `index.html'.

100%[================================================>] 4 891 --.-K/s в 0s

2009-10-12 20:20:35 (105 MB/s) - `index.html' сохранён [4891/4891]
Автор: Mosl
Дата сообщения: 12.10.2009 20:09
01MDM
ты не понял. Никто нечего не забанил. Я имел виду что в цикл уходит когда нет соединения (связи с ресурсом)! Скрипт продолжает опрашивать его раз за разом и не переходит к выполнению задачи соединения. Я решил добавив параметр -t 1 ("wget -t 1" - он задает количество попыток). И убрал cmd /c так как с ним после выполнения wget -t 1 ya.ru (в случае не доступности) дальше скрипт не выполнялся.
Скрипт в таком виде отробатывает коректно:

Код: @echo off
wget -t 1 ya.ru

if not exist index.html (
rasphone.exe -h "Beeline"
rasphone.exe -d "Beeline"
)
2>nul del index.html
Автор: 01MDM
Дата сообщения: 12.10.2009 20:56
Mosl

Подозреваю просто различия в gnuwget и winwget.

"cmd /c wget" использую по привычке. Однажды долго не мог понять почему не отрабатывает батник. Оказалось, что wget при неудачной закачке просто завершал батник. Поэтому и запускаю его в отдельной cmd.

Автор: B16
Дата сообщения: 14.10.2009 18:59
Хотел бы написать простенький батник, для удаления кое каких папок и нескольких ключей реестра.

Собственно вот что нужно: там где я учусь стоят ноды с триалом, разорится на лицу не кто не хочет, вот и переставляем каждые 30 дней. И как то надоедает удалять папки оставшиеся после нода, а потом ещё в реестре. Хотелось бы написать батник, что бы удалял папки(желательно, что бы выводился запрос на удаление: да\нет), допустим по имени ESET и определённые ключи реестра.
С реестром то я и не знаю, что сделать, с папками тоже средне.....
Автор: N1G
Дата сообщения: 15.10.2009 15:43
Скажите а возможно ли при помощи пакетного файла определить букву съемного диска или флешки?
Автор: 01MDM
Дата сообщения: 15.10.2009 17:29
N1G

Цитата:
при помощи пакетного файла определить букву съемного диска или флешки?

Выбирай:

Код:
@echo off
setlocal

::1
set "exec=echo list volume ^| diskpart ^| findstr Removable"
for /f "tokens=3" %%i in ('%exec%') do echo %%i:

::2
set "exec=wmic logicaldisk where drivetype^="2" get name /value"
for /f "tokens=2 delims==" %%i in ('%exec%') do echo %%i

::3
for %%i in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do (
    fsutil fsinfo drivetype %%i: | 1>nul findstr Removable && echo %%i:
)
Автор: B16
Дата сообщения: 15.10.2009 18:14
Где читал, что можно написать простенький батник, что бы он создавал в папке с файлами тхт файлик в котором будут написаны имена файлов(с расширением) и папок.
Кто знает как это сделать?
Автор: 01MDM
Дата сообщения: 15.10.2009 18:43
B16
По первому вопросу, удалять заранее известные папки и ключи реестра можно простыми командами:

Код:
@echo off
rd /s /q "%ProgramFiles%\Eset"
rd /s /q "C:\Test\Test"

reg delete "HKLM\Software\Eset" /f
Автор: N1G
Дата сообщения: 16.10.2009 08:09
to 01MDM

Спасибо огромное за предложенный вариант!


Цитата:

@echo off
setlocal

set "exec=wmic logicaldisk where drivetype^="2" get name /value"
for /f "tokens=2 delims==" %%i in ('%exec%') do echo %%i


А можно ли выполнить сортировку от диска A:\, а то к примеру оны выдаёт A:\ и G:\
т.е. флопик он всегда определяет.
Автор: 01MDM
Дата сообщения: 16.10.2009 08:38
N1G

Цитата:
А можно ли выполнить сортировку от диска A:\, а то к примеру оны выдаёт A:\ и G:\
т.е. флопик он всегда определяет.

Т.е. Исключить A: ? Исправь строку:

Код:
set "exec=wmic logicaldisk where ^(drivetype^="2" AND name!^="A:"^) get name /value"
Автор: N1G
Дата сообщения: 16.10.2009 11:50
Благодарю!
Автор: Mosl
Дата сообщения: 17.10.2009 00:16
01MDM
Хотел что спросить. Может у вас будут какие идеи. Почему один и тот же *.cmd файл может правильно отрабатываться при запуске в ручную, но при этом не правильно отрабатываться при запуске через планировщик задач?
Если помните:

Код: @echo off
wget -t 1 ya.ru
if not exist index.html (
rasphone.exe -h "Beeline"
rasphone.exe -d "Beeline"
)
2>nul del index.html
Автор: bomzzz
Дата сообщения: 17.10.2009 02:31
потому что (скорее всего - так я сильно пьян у меня строчки в глазах прыгают) при запуске из другой директории рабочая директория получается та откуда его запустили нуна добавить строку

CD /D %~DP0
это сменит рабочую директория на ту где валяется сам бантник
Автор: 01MDM
Дата сообщения: 17.10.2009 08:15
Mosl
bomzzz прав. "%~DP0" в кавычках, если в пути к батнику есть пробелы

Автор: Mosl
Дата сообщения: 17.10.2009 09:00
это так что ли:

Код: @echo off
CD /D %~DP0
wget -t 1 ya.ru
if not exist index.html (
rasphone.exe -h "Beeline"
rasphone.exe -d "Beeline"
)
2>nul del index.html
Автор: 01MDM
Дата сообщения: 17.10.2009 09:19
Mosl

Код:
@echo off
pushd "%~dp0" или cd /d

wget -t 1 ya.ru
if not exist index.html (
rasphone.exe -h "Beeline"
rasphone.exe -d "Beeline"
)
2>nul del index.html
Автор: omamont
Дата сообщения: 18.10.2009 00:02
Помогите устал руками править.

Есть пака в ней много твиков реестра

001-Классический вид Панели управления.reg

Код: Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"ForceClassicControlPanel"=dword:00000001
Автор: 01MDM
Дата сообщения: 18.10.2009 11:31
omamont

Код:
@echo off
for %%i in (*.reg) do sed -i "2 s/^.*$/;%%~ni/" "%%i"

:: del sed* - если создаются временные файлы вида sedQWHjNy

del sed*
Автор: s3rghm
Дата сообщения: 18.10.2009 11:57
добрый день, помогите начинающему.

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

заранее спасибо.
Автор: omamont
Дата сообщения: 18.10.2009 15:27
01MDM не сработало - пишет:

Цитата:
"sed" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

и так много раз.
положил несколько файлов для примера которые надо редактировать
здесь: http://rghost.ru/537803/private/3d3a5f289d95ab7aca2261691fd7bf92
Автор: 01MDM
Дата сообщения: 18.10.2009 19:41
omamont
http://gnuwin32.sourceforge.net/packages/sed.htm


Автор: omamont
Дата сообщения: 18.10.2009 21:04
01MDM

ОГРОМНОЕ СПАСИБО помогло - работает !!!

А баз сторонних утилит - никак ?
типа: заменить в файле строчку

Код: @Echo Off
::заменить в файле строку "Temp=" на "Temp=268698540,027KJIGEIOHTEXO"
Call :SkipAdd "%ProgramFiles%\WinTools.netProfessional\wintoolspro.ini"
Exit

:SkipAdd
FindStr /IBVC:"Temp=" "%~f1">"%~dpn1.tmp"
Echo Temp=268698540,027KJIGEIOHTEXO>>"%~dpn1.tmp"
If Exist "%~dpn1.bak" DEL /F/Q "%~dpn1.bak"
Ren "%~f1" "%~n1.bak"
Ren "%~dpn1.tmp" "%~nx1"
DEL /F/Q "%~dpn1.bak"
Exit /B
Автор: 01MDM
Дата сообщения: 18.10.2009 22:06
omamont

Цитата:
А баз сторонних утилит - никак ?

Да нет:

Код:
@echo off
for %%i in (*.reg) do (

    1>"%%~ni.temp" (
        echo Windows Registry Editor Version 5.00
        echo ;%%~ni
        more +2 "%%i"
    )
    
    move "%%~ni.temp" "%%i"
)
Автор: omamont
Дата сообщения: 18.10.2009 22:35

Цитата:
В данном случае можно и так, просто не люблю батником работать с текстом.

кракозябры

Код: Windows Registry Editor Version 5.00
;168-ЋвЄ«озЁвм ®б- бвЄг 'Cўo©cвўa cЁcвe¬л' - эт 2й вариант
;168-Отключить оснастку 'Cвoйcтвa cиcтeмы'
[HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{0F3621F1-23C6-11D1-AD97-00AA00B88E5A}]
"Restrict_Run"=dword:00000001
Автор: 01MDM
Дата сообщения: 19.10.2009 00:58
omamont

Цитата:
кракозябры

надо указать кодировку (cp1251). Сразу с подпапками:

Код:
@echo off
1>nul chcp 1251

for /f "tokens=*" %%i in ('dir /b /s /a *.reg') do (

1>"%%~ni.temp" (
echo Windows Registry Editor Version 5.00
echo ;%%~ni
more +2 "%%i"
)

move "%%~ni.temp" "%%i"
)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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