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

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

Автор: NovaC
Дата сообщения: 31.03.2009 10:40
необходимо в cmd запустить exe и в качестве параметра передать IP адрес рабочего места. Подскажите как средствами cmd "вычленить" IP и подсунуть его параметром ?
Автор: Maza_Faka
Дата сообщения: 31.03.2009 12:44
NovaC
Пример:

Код:
@Echo Off

FOR /F "Usebackq Tokens=1,2 Delims=:" %%A in (`Ipconfig ^| Find /I "IP"`) Do Set IPAdress=%%B

Echo %IPAdress:~1%
Автор: NovaC
Дата сообщения: 01.04.2009 12:58
Maza_Faka, спасибо, то что надо
Автор: Dimetriu
Дата сообщения: 01.04.2009 14:34
Добрый день.
Помогите пожалуйста решить задачу. Нужно заархивировать(rar) все файлы *.txt в каталоге. Проблема заключается в том что каждый файл должен быть в отдельном архиве, почему именно так - преподователь решил усложнить задачку.
Всё, сделал.
Автор: vmazur47
Дата сообщения: 02.04.2009 11:19
Доброго времени суток.
Подскажите, пожалуйста, как решить проблемку. Есть куча файлов бекапов sql, которые создаются каждый день. С помощью батника
forfiles /p d:\backup\ /d -14 /m *.* /c "cmd /c del /a /f @FILE"
удаляю все, которые старше 2-х недель. Но на всякий случай хотелось бы оставить бекап каждого начала месяца, тоесть файлы, созданные например 01.02.2009. Подскажите как это можно реализовать? Просто выборка 01.??.???? не работает.
Автор: Maza_Faka
Дата сообщения: 02.04.2009 13:09
vmazur47
Попробуйте так:

Код:
@Echo Off

Set BackupDir=d:\backup\

For /F "Tokens=*" %%A In ('forfiles /p %BackupDir% /d -14 /m *.*') Do Echo %%~tA | Findstr "^01">Nul || Del /F /Q "%BackupDir%%%~A"
Автор: vmazur47
Дата сообщения: 02.04.2009 13:50
Maza_Faka
Попробуйте так:


Код:
@Echo Off

Set BackupDir=d:\backup\

For /F "Tokens=*" %%A In ('forfiles /p %BackupDir% /d -14 /m *.*') Do Echo %%~tA | Findstr "^01">Nul || Del /F /Q "%BackupDir%%%~A"
Автор: Maza_Faka
Дата сообщения: 03.04.2009 08:38
vmazur47

Цитата:
Файлы с датой создания например 01.02.2008 сносит тоже

У меня отрабатывает нормально, какой формат даты в системе?
Автор: vmazur47
Дата сообщения: 03.04.2009 10:09

Цитата:
У меня отрабатывает нормально, какой формат даты в системе?


Формат даты в системе 3 апреля 2009 г., 10:01:00
Попробовал посмотреть что выводит команда

For /F "Tokens=*" %%A In ('forfiles /p %BackupDir% /d -14 /m *.*') Do Echo %%~tA >>1.txt

получились глюки:

ђҐ¦Ё¬ ўлў®¤  Є®¬ -¤ -  нЄа - (ECHO) ®вЄ«озҐ-.
ђҐ¦Ё¬ ўлў®¤  Є®¬ -¤ -  нЄа - (ECHO) ®вЄ«озҐ-.
ђҐ¦Ё¬ ўлў®¤  Є®¬ -¤ -  нЄа - (ECHO) ®вЄ«озҐ-.
Автор: Maza_Faka
Дата сообщения: 03.04.2009 11:21
vmazur47

Цитата:
получились глюки:

Это не глюки, а Dos-кодировка 866. Откройте файл в редакторе, который поддерживают данную кодировку, например Akelpad.

Добавлено:
vmazur47
Выполните в командной строке:

Код:
Echo %DATE%
Автор: vmazur47
Дата сообщения: 03.04.2009 16:12

Цитата:
Выполните в командной строке:
Код:
Echo %DATE%
и запостите результат.

Получилось: 12:14:41,41


Цитата:

Это не глюки, а Dos-кодировка 866. Откройте файл в редакторе, который поддерживают данную кодировку, например Akelpad.


Согласен. Я кажется нашёл проблемму, но не знаю как с нею справится. При запуске батника из папки, где лежат сами файлы, программа отрабатаывается как надо. При запуске из любой другой пишет

Режим вывода команд на экран (ECHO) отключен.

Как заставить его работать правильно?
Автор: Maza_Faka
Дата сообщения: 04.04.2009 07:48
vmazur47

Цитата:
Получилось: 12:14:41,41

Какая ОС?


Цитата:
Как заставить его работать правильно?

Выложите код.
Автор: vmazur47
Дата сообщения: 06.04.2009 10:01

Цитата:
Какая ОС?

Винда SP3 ru



Цитата:
Выложите код.


Код:
@Echo off
Set BackupDir=d:\log\
For /F "Tokens=*" %%A In ('forfiles /p %BackupDir% /d -14 /m *.*') Do Echo %%~tA | Findstr "^01">Nul || Del /F /Q "%BackupDir%%%~A"
Автор: claus22
Дата сообщения: 06.04.2009 16:34
а ктонибудь заморачивался с командником для автоматического определения присвоенного айпишника при впн подключении и добавления его в роутинг

т.е. впн соединение установлено айпишник присваивается динамически в соответствии с настройками удаленногос сервера
и нужно выцепить этот айпи и подставить в команду

route add 192.168.3.0 mask 255.255.255.0 <ip присвоенный при подключении к впн>

как выдрать этот айпишник с наименьшими телодвижениями в переменную?

есть вариант проще чем выполнение ipconfig /all и find строки вроде IP.......192.168.222.xxx?
Автор: vitrzn
Дата сообщения: 06.04.2009 22:06
Подскажите !
Какой командой в батнике можно запустить ПРОГРАММА.exe , чтобы батник не дожидался её завершения, а продолжал выполнялся дальше ?
типа:
бла бла
бла бла
start /w ПРОГРАММА.exe
копировать
удалять

и т.п.
Автор: Elroir
Дата сообщения: 07.04.2009 02:15
vitrzn

Код: start "" "ПРОГРАММА.exe"
Автор: D555
Дата сообщения: 07.04.2009 03:15
Подскажите пожалуйста, есть ли какой-нибудь способ - прописать в батнике - чтобы окно работы батника вообще не выводилось(не появлялось) на мониторе ?
Автор: 01MDM
Дата сообщения: 07.04.2009 07:20
D555

Можно запускать батник при помощи vbc-скрипта, при помощи сторонних утилит или от другой учетной записи через планировщик (at, schtasks)

cmdow в шапке.
Или hstart, страница hstart с примерами использования утилиты.
Автор: vitrzn
Дата сообщения: 07.04.2009 07:52

Цитата:
D555


Можно ещё посоветовать программку TrayIt!.exe, умеет скрывать ВСЁ в трей, в том числе и полностью скрывать (в процессах конечно будет видно).

Или как вариант без установки сторонних утилит, можно текст в батнике (визуальном окошке) скрыть , с помощью команды Color
Автор: Elroir
Дата сообщения: 07.04.2009 08:43
vitrzn

Цитата:
Или как вариант без установки сторонних утилит, можно текст в батнике (визуальном окошке) скрыть , с помощью команды Color

Нельзя.
Автор: guru431
Дата сообщения: 08.04.2009 17:03
Помогите решить задачу:
В корне диска "С:" есть некая папка, имя которой может быть любым. В этой папке находится другая папка, имя которой всегда одинаково - "Folder". В папке Folder всегда будет лежать файл с именем - "Files.txt".
Вопрос: нужет батник, который найдет и удалит эту папку (имя которой неизвестно) со всем её содержимым.
Автор: 01MDM
Дата сообщения: 08.04.2009 18:33
guru431


Код:
@echo off
for /d %%i in (C:\*) do (

dir /b "%%i\Folder\files.txt" 2>nul 1>&2 && rd /s /q "%%i"

)
Автор: guru431
Дата сообщения: 09.04.2009 08:52
01MDM
Спасибо!!!

И еще один маленький вопрос:
Есть, к примеру, папка Temp. Как можно удалить все папки, находящиеся в ней, а саму Temp оставить?

del /f /s /q "Temp\*" - это удаляет только файлы
rd /s /q "Temp\*" - а это не работает
Автор: 01MDM
Дата сообщения: 09.04.2009 09:02
guru431

Код:
@echo off
pushd "C:\Temp"
rd /s /q "." 2>nul
popd
Автор: GGS
Дата сообщения: 09.04.2009 16:41
01MDM
IMHO, необходимо выполнять проверку наличия "C:\Temp"
Если этой папки нет, текущий каталог C:\ ?
Страшно представить...
Автор: 01MDM
Дата сообщения: 09.04.2009 17:46
GGS
Это просто пример, но в данном случае конечно ты прав.
Автор: LEDRA
Дата сообщения: 09.04.2009 21:04
Вечер добрый у меня глобальный вопрос... не знаю возможно ли реализовать, но всеже рискну спросить.

Есть текстовый файл вида

xxxxxx
<nomer>-3.656135812678,56.543534534533</nomer>
yyyyyy

и.т.д - номера разные. Задача - нужно обрезать номера до 3х знаков после точки.
xxxxxx и yyyyy - некоторый любой текст

результат должен быть

xxxxxx
<nomer>-3.656,56.543</nomer>
yyyyyy

Возможно?


Автор: D555
Дата сообщения: 10.04.2009 06:24
>>>Подскажите пожалуйста, есть ли какой-нибудь способ - прописать в батнике - чтобы
>>окно работы батника вообще не выводилось(не появлялось) на мониторе ?


... видимо "молчаливого" режима исполнения, силами самого батника нету((
а может есть вариант команд батника для его запуска свёрнутым в панель задач ?
Автор: svradmin
Дата сообщения: 10.04.2009 09:17
Ребята помогите решить задачу, нужно имени файла задать переменную без расширения(только имя = переменная),файл находится на сетевом ресурсе \\server\share\файл с любым именем.dbf, пишу батник здесь споткнулся и дальше не продвинусь из за этого
Автор: Maza_Faka
Дата сообщения: 10.04.2009 10:31
D555

Цитата:
видимо "молчаливого" режима исполнения, силами самого батника нету

HSTART

svradmin

Цитата:
нужно имени файла задать переменную без расширения

Пример:

Код:
@Echo off

Set FilePath=\\server\share
Set File=MyFile.dbf

For /F "Tokens=*" %%A In ('Dir /B %FilePath%\%File%') Do Set FileName=%%~nA

Echo %FilePath%\%FileName%

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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