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

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

Автор: 01MDM
Дата сообщения: 07.08.2009 15:34
Cosmogor

Код:
@echo off
setlocal

set "RAR=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe"
for /f "tokens=3*" %%a in ('reg query "%RAR%" /v Path') do set "instdir=%%a %%b"

start "" "%instdir%"
Автор: Sergey_Makarov
Дата сообщения: 07.08.2009 16:14
Добрый день.

Есть директория с файлами такого типа:

sw11.dat
sw12.dat
sw13.dat
.... и т.д.

Часть кода для обработки этих файлов:

@C:\tse\tse -s <C:\tse\sw-dat-levBereg\sw11.dat
@ren "D:\tftp\ssss.bac" sw11_%date%.bac
@copy "D:\tftp\sw11_%date%.bac D:\Network\bac\%date%
@del "D:\tftp /f /q
@rem ***************************************************
@C:\tse\tse -s <C:\tse\sw-dat-levBereg\sw12.dat
@ren "D:\tftp\ssss.bac" sw12_%date%.bac
@copy "D:\tftp\sw12_%date%.bac D:\Network\bac\%date%
@del "D:\tftp /f /q
@rem ***************************************************
.. и т.д.

На каждый файл *.dat приходится добавлять такую часть кода,
итересует можно ли сделать цикл перебора этих файлов, чтобы
не дописывать часть кода при добавлении нового файла *.dat
Автор: Cosmogor
Дата сообщения: 07.08.2009 16:21
Всем большое спасибо,
Великое дело всё таки эти батники!
Автор: 01MDM
Дата сообщения: 07.08.2009 16:39
Sergey_Makarov
Перебрать файлы можно так:

Код:
@echo off

for %%i in ("C:\tse\sw-dat-levBereg\sw*.dat") do (

твой блок кода, где вместо названия файла - "%%i"
т.е, например: C:\tse\tse -s <"%%i"

)
Автор: Cosmogor
Дата сообщения: 08.08.2009 14:00
Доброго времени суток.

Помогите со скриптом
Нужно осуществить поиск по всем дискам(кроме диска А
папки MENU, эта папка всегда находится в корне диска,
и открыть найденную папку MENU командой explorer.
Только есть одна проблема: Диск где находится папка
неизвестен.
Ниже скрипт, но я с ним намудрил конкретно.

Код

setlocal enabledelayedexpansion
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do dir %%d:\MENU>nul 2>&1 && set zz=!zz!,%%d
echo %zz%

explorer "%zz%"


Спс.
Автор: igor_andreev
Дата сообщения: 08.08.2009 15:27
Cosmogor

Код:
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%a:\MENU\NUL explorer %%a:\MENU
Автор: Cosmogor
Дата сообщения: 08.08.2009 18:36
igor_andreev

Круто, работает как надо!
Жаль, что я не смог разобраться.
Скажи, а зачем в коде NUL?
Остальной код я понял.

Спс.
Автор: igor_andreev
Дата сообщения: 08.08.2009 21:43
Cosmogor
NUL - виртуальное устройство, присутствует в любой папке.
IF EXIST MENU\NUL - означает "если существует директория MENU"
В корне диска может же и файл оказаться с таким названием и без расширения, тогда все пойдет не так, как задумано... В принципе для указания именно папки, а не файла, можно ограничиться просто слешем на конце, без NUL.
IF EXIST MENU\

Автор: Cosmogor
Дата сообщения: 08.08.2009 21:45
igor_andreev

Спасибо, ответ исчерпывающий.
Автор: ScreamWolf
Дата сообщения: 09.08.2009 09:05
Вопросы на засыпку (чисто для личного развития, а так же собеседников данной темы)

Задача №1

Например, батник создает другой батник и запускает его (или же запускает любой исполняемый файл). Данный файл некоторое время работает, потом завершаться сам...

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

время исполнения 2-о файла от запуска до завершения заранее известны (а будет лучше если нет)

То есть, мне надо как-то дать понять юзеру, скока примерно займет времени выполнение сего...



Задача №2

В батник необходимо передать адрес к некоему файлу... Только что бы сриптом запускалось окно (explorer) с деревом слева и окном выбора файла справа...

такой вариант не катит ->

Код: @echo off
set wndw=Specify the path to the file:
set titl=Enter path file
set expl=%windir%\system32\calc.exe
set tmp=%temp%\~.vbs
title %titl%
echo wscript.echo inputbox("%wndw%","%titl%", "%expl%")>%tmp%
for /f "delims=" %%a in ('cscript //nologo "%tmp%"') do set my_set=%%a
del %tmp%
echo File path: %my_set%
pause >nul
Автор: ildarchikk
Дата сообщения: 09.08.2009 10:16
Здравствуйте.
Подскажите, можно ли в батче в имени файла отрезать сзади определённое число символов?
Т.е. к примеру была переменная abc1234.mp3 - мне надо получить переменную abc12.
Автор: 01MDM
Дата сообщения: 09.08.2009 11:11
ScreamWolf

Цитата:
В батник необходимо передать адрес к некоему файлу... Только что бы сриптом запускалось окно (explorer) с деревом слева и окном выбора файла справа...


Код:
@echo off
setlocal

set /p file="Enter full path to the file: "
call:open "%file%"
goto:eof

:open
explorer /e,/root,"%~dp1",/select,"%~f1"
Автор: igor_andreev
Дата сообщения: 09.08.2009 11:21
ScreamWolf
1.

Код:
@echo off
for /l %%a in (1,1,80) do set /p ="."<nul & ping -n 1 localhost>nul 2>&1
Автор: ildarchikk
Дата сообщения: 09.08.2009 11:47
01MDM
Огромное спасибо, вы мне Очень помогли
Автор: vovanius1
Дата сообщения: 09.08.2009 15:19
Э... Предлагаю присутствующим сильно не бить и не пинать если такое было уже... прочитать все от начала не смог. Итак: есть скрипт, надо чтоб он исполнялся только в единственном экземпляре, а если его по ошибке запустить в двух экз., то этот второй должен понять, что уже один запущен, и молча и ничего не делая закрыться. Вариант if exist с созданием вначале некоего файла-ключа и удалением его в конце не подходит, ибо скрипт рассчитан на ручное закрытие по крестику в любой момент, а значит, удалить ключ не сможет. Спасибо.

ЗЫ. ОС Виста, если это имеет значение, там вроде несколько новых команд добавили. Порадовала долгожданная timeout
Автор: igor_andreev
Дата сообщения: 09.08.2009 16:39
vovanius1
Под 2000\XP можно pv юзать http://www.teamcti.com/pview/pv_5_2_2.zip

Код:
@echo off
pv cmd.exe -l"*\%~nx0*" -n >nul 2>&1
if not "%errorlevel%"=="-1" exit /b
Автор: ScreamWolf
Дата сообщения: 09.08.2009 17:20
01MDM

Цитата:
@echo off
setlocal

set /p file="Enter full path to the file: "
call:open "%file%"
goto:eof

pen
explorer /e,/root,"%~dp1",/select,"%~f1"

ты меня не правильно понял...

Цитата:
В батник необходимо передать адрес к некоему файлу... Только что бы сриптом запускалось окно (explorer) с деревом слева и окном выбора файла справа...

set /p и inputbox("Текст","Титул", "Пример") не катит, нужно что бы что-то вроде (или именно) окно windows открывалась с выбором файла...
Примерно так можно?




igor_andreev

Цитата:
@echo off
for /l %%a in (1,1,80) do set /p ="."<nul & ping -n 1 localhost>nul 2>&1

Отличный пример... тока вот время от чего зависит...
попробовал сменить ping -n <X> где x - как я думал будут секунды, но увы не то...

А еще было бы лучше если использовать скрипт какой нить чтоб виндусовскую строку (как через msiexec) в окошечке отдельном показал)))


Добавлено:
igor_andreev

Цитата:
@echo off
for /l %%a in (1,1,80) do set /p ="."<nul & ping -n 1 localhost>nul 2>&1


подредактировал))

Код: @echo off
echo.
echo Ћ¦Ё¤ ©вҐ
echo.
for /l %%a in (1,1,80) do set /p ="Ы"<nul & ping -n 1 localhost>nul 2>&1
echo.
cls
echo.
echo ‚лЇ®«-Ґ-®!
echo.
echo ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
pause >nul
Автор: Cokolok
Дата сообщения: 09.08.2009 18:19
люди , как удалить всё что находиться в папке \Moy\OperaProfie\styles\user\ ?
del \Moy\OperaProfie\styles\user\
некатит
или скажите код как копировать файлы так, чтобы потом те что стоят заменялись (я называаю автозамена файлов.
спс зарание
Автор: ScreamWolf
Дата сообщения: 09.08.2009 19:14
Cokolok
Удалить

Код: del /q /f "C:\Moy\OperaProfie\styles\user\*.*"
Автор: Cosmogor
Дата сообщения: 09.08.2009 22:26
ScreamWolf


Цитата:
Задача №2

В батник необходимо передать адрес к некоему файлу... Только что бы сриптом запускалось окно (explorer) с деревом слева и окном выбора файла справа...


Кажется можно через rundll32.exe

Код

Rem Открывает свойства папки
rundll32.exe shell32.dll Options_RunDLL


Остальные ищи в справочнике RunDLL.
Автор: 01MDM
Дата сообщения: 09.08.2009 22:57
Cosmogor

Цитата:
Кажется можно через rundll32.exe


Может и можно, но это скорее всего военная тайна. Онлайн справка по rundll32:
http://dx21.com/coding/libraries/rundll32/default.aspx

Как вызвать диалог открытия файла не нашел.
Автор: igor_andreev
Дата сообщения: 10.08.2009 00:34
Если использование сторонних утилит не возбраняется, то для диалога выбора файла можно использовать congetfile отсюда http://www.geocities.com/fp.westlake/nt/

Код:
for /f "tokens=*" %%a in ('congetfile') do set "filename=%%a"
echo %filename%
Автор: nikrons
Дата сообщения: 10.08.2009 06:58
Вопрос к знатокам.

Как можно красиво запустить из *.cmd Internet Explorer с конкретным url, чтобы *.cmd ждал закрытия Internet Explorer и после закрытия Internet Explorer, *.cmd файл продолжил выполнение.

Сейчас у меня такое в *.cmd

cmd /c rasphone ...
filename.url - это запуск IE с url, который описан внутри
rasdial /disconnect

но при этом после запуска filename.url, сразу же выполняется
rasdial /disconnect.

Спасибо.
Автор: 01MDM
Дата сообщения: 10.08.2009 08:05
nikrons

Цитата:
Как можно красиво запустить из *.cmd Internet Explorer с конкретным url, чтобы *.cmd ждал закрытия Internet Explorer и после закрытия Internet Explorer, *.cmd файл продолжил выполнение.



Код:
@echo off

echo start
"%ProgramFiles%\Internet Explorer\iexplore" ya.ru
echo stop
Автор: Sergey_Makarov
Дата сообщения: 10.08.2009 10:22
Спасибо 01MDM то, что надо.
Автор: Kilyan
Дата сообщения: 10.08.2009 10:46
Требуется помощь!
Существует БД *.dbf, нужно необходимые поля базы - построчно вывести в *.тхт, с указанием разделителя.
Хелпп!!!
Автор: KapralBel
Дата сообщения: 10.08.2009 12:51
Kilyan
Простая программа на FoxPro пойдет?
Автор: Kilyan
Дата сообщения: 10.08.2009 13:19
KapralBel
да! - если моно с исходником!
Автор: Solotoy
Дата сообщения: 10.08.2009 14:14
добрый день "Панель управления NVIDIA" работает с командной строкой? если да то
извините оч . надо ,при подключении телевизора по HDMI,надо лезть в Панель управления NVIDIA и там ставить точку " Независимая настройка (Dualview)"не то чтоб напрягает но...
"Панель управления NVIDIA" сохраняет профили ,не плохо было бы если нажав на батник ,он сам грузил профиль в "Панель управления NVIDIA" и сохранял это дело...
а если не работает с командной строкой- то ИЗВИНИТЕ за оффтоп...
спасибо
Автор: KapralBel
Дата сообщения: 10.08.2009 14:23
Kilyan

Вызов
Код: list_db <ИмяБазы> <ИмяТекстовогоФайла>

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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