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

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

Автор: NvvLazyTiger
Дата сообщения: 18.03.2009 02:16
shmalex77 В батниках символ "%" удваивается, т.е. должно быть
Код: for %%a in (*.rar) do rd %%~na /s /q
Автор: shmalex77
Дата сообщения: 18.03.2009 02:31
сам разобрался и в
%~na - из переменной %a выделяется только имя файла
и в том что надо было запускать не в бат файле а прямо командой из командной строки.Странно а чего оно в батнике не работает я не понял
спасибо

Добавлено:
ой пока пробовал мне уже ответ написали
спасибо NvvLazyTiger
Автор: nikrons
Дата сообщения: 21.03.2009 13:49
Вопрос с знатокам.
Есть имя файла filename.ext.sgn.enc
Как можно в cmd выделить filename.ext ?
Автор: 01MDM
Дата сообщения: 21.03.2009 14:27
nikrons

Код:
C:\> for /f "tokens=1,2 delims=." %i in ('dir /b filename.ext.sgn.enc') do echo %i.%j
Автор: nikrons
Дата сообщения: 21.03.2009 15:17
А можно поконкретней, имя файла передаётся в cmd в качестве параметра.
Т.е. внутри *.cmd

set fn=%~n1 - получается filename.ext.sgn
а ещё раз убрать расширение .sgn я не знаю как
чтобы дальше выполнить например (copy filename.exe d:\)
copy %fn% d:\

Спасибо за помощь.
Автор: 01MDM
Дата сообщения: 21.03.2009 15:27
nikrons

Код:
@echo off
for /f "tokens=1,2 delims=." %%i in ('dir /b %1') do copy "%%i.%%j" d:\
Автор: nikrons
Дата сообщения: 21.03.2009 15:30
Спасибо большое, всё получилось!!!
Автор: MIHMIH007
Дата сообщения: 22.03.2009 15:20
скажите пожалуйста можно ли сделать батник следующего вида:
К примеру есть файл app.exe он запускается с параметром 1
Нпаример:
start app.exe 1

Я хочу поменять расширение на dat получится app.dat но тогда естественно он не запустится как exe... Можно ли сделать батник который бы понимал что app.dat это app.exe ?
Автор: JekaRus
Дата сообщения: 22.03.2009 16:07
В батнике сделать добавление в реестр рег файла
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dat]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dat]
@="Application"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dat\DefaultIcon]
@="%1"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dat\shell\open\command]
@="\"%1\" %*"

Он сделает .dat файлы исполняемыми. После отработки батника вернуть предварительно сохраненную оригинальную ветку. Ну это как вариант. Может есть методы и получше.
Автор: Lait777
Дата сообщения: 22.03.2009 21:25
Добрый вечер!народ помогите плиз, как с помощью командной строки перезапустить эксплорер и чтобы при перезапуске были права системы??может немного не по теме пост, но кто может подскажите плиз
Автор: Elroir
Дата сообщения: 23.03.2009 10:20
MIHMIH007

Цитата:
Можно ли сделать батник который бы понимал что app.dat это app.exe ?

Нет. Можно перед запуском переименовать в .exe, a после окончания работы, назад в .dat.
Автор: pashuxa
Дата сообщения: 23.03.2009 13:54
Может кто может подсказать как сделать батник что бы выпонялась команда shutdown по локальной сети с одного компа на пример....обязательно -ли .что бы BAT или CMD имел авторизацию...если да то как это осуществить.....через удалённый стол выполнить не сложно такое.....а так что бы просто кнопочкой на рабочем столе..??
Автор: lid111
Дата сообщения: 24.03.2009 04:43
01MDM, вы мне очень помогли однажды (25 февраля 2008 года) здесь: http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=340

Но этот bat-файл не обрабатывает (пропускает) диск, на котором находится. Т. е. когда он находится на системном диске - указанные папки не очищаются. Не могли бы вы подправить текст - для запуска файла из любого места?
Автор: Elroir
Дата сообщения: 24.03.2009 17:49
lid111
Отвечу вместо 01MDM
Вместо строчки "if not %~d0==%%i: call:clean %%i", надо поставить просто "call:clean %%i"
При этом будут обрабатываться все диски, включая тот, с которого запущен батник.
Автор: lid111
Дата сообщения: 25.03.2009 03:06
Elroir, спасибо вам и форуму, всё OK.
Автор: s1nfrompvl
Дата сообщения: 25.03.2009 11:45
хм... тут недавно понадобилось работа с интерфейсом... ну чтобы при выполнении выдавался запросы в окошечках... например пароль...
в шапке ссылка "Пакет утилит для организации интерфейса в bat-файлах" померла... точнее сам сайт.... а есть чтонить похожее???
Автор: Maza_Faka
Дата сообщения: 25.03.2009 12:53
s1nfrompvl

Цитата:
в шапке ссылка "Пакет утилит для организации интерфейса в bat-файлах" померла

Перезалил, попробуй скачать.
Автор: vitebsk1
Дата сообщения: 25.03.2009 18:17
Доброго времени суток, уважаемые гуру!

Помогите решить задачку:

Есть файл test.md5, сформированный прогой fsum, след. вида


Код:
; SlavaSoft Optimizing Checksum Utility - fsum 2.52.00337 <www.slavasoft.com>
;
; Generated on 03/25/09 at 17:24:49
;
157f5cd761138a93c6050e525cbe3159 *afform1.xml
ee436b95c5c769333a36079a0c18cf2b *afform2.xml
363b05e3fb8dbc0e1463a1e9cf4979ba *afform3.xml
de2a1aed72766bc1c10fd04144c9db6e *afform4.xml
Автор: Elroir
Дата сообщения: 25.03.2009 18:41
vitebsk1
Что-то вроде такого:

Код:
@echo off
for /f "tokens=2*" %%a in ('type list.md5 ^| find "OK"') do echo %%b>>list_OK.md5
Автор: vitebsk1
Дата сообщения: 25.03.2009 19:10
Спасибо огромное, Elroir ) то что надо !
Автор: s1nfrompvl
Дата сообщения: 25.03.2009 23:12
Maza_Faka
огромное спасибо... скачал.. то что надо...

з.ы. просмотрел все по 2 раза.. не нашел нужную штуку...
в общем проблема такая.... запускается сценарий.. в нужный момент вываливается окошко с запросом... не консольный если есть.. туда вставляется текст и скрипт дальше работает как надо...
если нету, то придетсья писать самому.. =)..
Автор: LEDRA
Дата сообщения: 26.03.2009 16:40
Подскажите плиз
Нужно объединить все данные текстовых файлов, находящихся в данной папке, в один x.txt.
Как такое можно сделать, или может ктото уже делал?
Автор: Maza_Faka
Дата сообщения: 26.03.2009 16:49
s1nfrompvl
Можно "прикрутить" vbs-файл:

Код:
@Echo Off

Echo txtFile = "tmp.txt">input.vbs
Echo Set FSO = CreateObject("Scripting.FileSystemObject")>>input.vbs
Echo Set sFile = FSO.CreateTextFile(txtFile)>>input.vbs
Echo sData = InputBox("Введите данные")>>input.vbs
Echo sFile.Write(sData)>>input.vbs
Echo sFile.Close>>input.vbs

Cscript //NoLogo input.vbs
For /F %%A In (tmp.txt) Do Echo %%A

Del /F /Q tmp.txt
Del /F /Q input.vbs
Автор: MEDBEDb_GRIzzLY
Дата сообщения: 26.03.2009 19:48
Господа, подскажите какой батник нужно (если это возможно) написать чтобы:
Образовался файл текстовой со строчками:
1. Текущая дата в формате YYYY-MM-DD
2. Текущее время с секундами в формате HH:MM:ss

Именно в этом формате Использоваться будет на куче машин, поэтому менять настройки в config.sys (country=) совсем нежелательно.


Добавлено:
Свой глупый вопрос снимаю:


Код:
@ECHO OFF
set day=%date:~0,2%
set month=%date:~3,2%
set year=%date:~-4%
set datetime=%year%-%month%-%day%
set times=%time:~0,8%

echo %datetime%
echo %times%
Автор: Maza_Faka
Дата сообщения: 27.03.2009 06:54
LEDRA

Цитата:
объединить все данные текстовых файлов, находящихся в данной папке, в один x.txt


Код:
@Echo Off

For %%A In (*.txt) Do (
Type "%%A">>result.txt
Echo.>>result.txt
)
Автор: LEDRA
Дата сообщения: 27.03.2009 11:47

Цитата:

@Echo Off

For %%A In (*.txt) Do (
Type "%%A">>result.txt
Echo.>>result.txt
)


Супер!!! Но есть одно но - кодировка result.txt становится отлична от оригиналов(
Кодировка оригиналов Win 1200 UTF-16LE, а result.txt - win 866 OEM. Можно сделать чтобы кодировка не менялась?

И еще вопрос если у меня уже есть в папке файл "result.txt ", как сделать чтобы он переименовался, допустим в "result(copy).txt ", а потом уже началось обїединение?
Автор: Maza_Faka
Дата сообщения: 27.03.2009 18:22

Цитата:
кодировка result.txt становится отлична от оригиналов


Цитата:
сделать чтобы он переименовался, допустим в "result(copy).txt "

Попробуй так:

Код:
@Echo Off

If Exist result.txt Ren result.txt result(copy).txt

For %%A In (*.txt) Do Call :_Prep "%%A"
Copy /B %STR:~3% out.txt
GoTo :EOF

:_Prep
Set STR=%STR% + %1
Автор: Deep2007
Дата сообщения: 27.03.2009 19:57
Помогите решить такую задачу:
В одноранговой сети (WINDOWS XP HOME) с 1-го компа нужно копировать файлы и папки на 2-й.
Сетевой путь к 1-й папке (стоит на общем доступе): \\Ouu-4\Обмен, внутри нее есть еще папки, например - Телеграммы и файлы (с кириллическими именами).
На компе № 2 (сетевой имя - \\Ouu-1)копировать в папку С:\РЕЗЕРВНЫЕ КОПИИ ФОТО. Структуру папок сохранять, как на 1-м компе. Общий размер копируемого - примерно 40 Гб. Если файл существует на 2-м компе, и не менялся (достаточно проверять размер), то его просто пропустить (не перезаписывать). Если размер менялся - перезаписать без всяких запросов.
Еще важный момент - если на 1-м компе файл или папка удалены, но они есть на компе 2 - их удалять НЕ НУЖНО.
Таким образом, при сравнении будут копироваться только измененые, созданные и перемещенные объекты.
Хорошо бы, чтобы такой батник дописывал в тестовый документ в своей директории (по завершении своей работы) строку типа:
Резервное копирование выполнено 27.03.2009 г 15:30.
Думаю прикрутить такой батник к планировщику задач, пусть запускается 1-4 раза в день.
Автор: Maza_Faka
Дата сообщения: 28.03.2009 09:50
Deep2007
ROBOCOPY
Автор: LEDRA
Дата сообщения: 29.03.2009 19:11
Maza_Faka

Спасибо! кодировка остается! Имя меняется!
Есть маленькое но, но оно не критично) Перед каждой добавленной строкой ставится пробел.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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