Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 8

Автор: Free_Soft
Дата сообщения: 25.08.2010 21:59
ну хорошо, не в sfx архиве. использую Bat_To_Exe_Converter. если без него, то команда на запись в реестр не проходит, если не запустить от админа. а если батник превратить с помощью Bat_To_Exe_Converter в ехе то запись проходит

Добавлено:
И еще, как в выражении

Код: for %%a in ( *.cmd ) do if /i "%%~a" neq "run.cmd" del "%%~a"
Автор: bomzzz
Дата сообщения: 25.08.2010 22:44
ну если в батниках нельзя использовать OR и AND то два вложенных IF. или переимновать оба исключения в другие файлы, потом удалить все, и переименовать два назад
Автор: LunQ
Дата сообщения: 25.08.2010 23:52
Господа программисты! Помогите батник написать плиз.
Нужно брать текст для переменной из одного файла, но исключать его, если он встречается в другом.
Как брать, я разобрался:
for /F "delims=" %%i in (key.txt) do start /wait run.exe /%%i
а как исключить не понимаю:
содержание файла key.txt:
========
adm
hide
hide+
notext
yes (и прочие ключи)
========
содержание другого файла temp.txt:
========
adm,режим администратора
hide,свернуть (то есть нужно исключить то, что до запятой)
========
тоесть в данной ситуации, файл run.exe, должен последовательно запускаться с одним из ключей hide+, notext, yes (содержание файла temp.txt изменчиво).
Автор: bomzzz
Дата сообщения: 26.08.2010 01:09
каждую строку потом надо findstr искать во втором файле
Автор: LunQ
Дата сообщения: 26.08.2010 06:27
bomzzz

Цитата:
каждую строку потом надо findstr искать во втором файле

Потом - это как? Как это выглядит в целом?
Я понимаю как искать строки до запятой в файле temp.txt:
for /f "usebackq skip=2 tokens=1 delims=," %%i in (`find " " temp.txt`)
А как исключить найденные строки из переменной?
Автор: BVV63
Дата сообщения: 26.08.2010 06:50
LunQ
Fing и Findstr возвращают %ErrorLevel%. Нашли - 0, не нашли - соответственно, не 0.

Цитата:
[А как исключить найденные строки из переменной?]

А зачем использовать эту переменную? Передавайте в первом цикле %%i по конвейеру в Find (или Findstr), а затем с учётом %ErrorLevel% в том же цикле For исключайте (или не исключайте) %%i.
Автор: 01MDM
Дата сообщения: 26.08.2010 06:59
LunQ

Код:
@echo off
for /f "tokens=*" %%i in ('type key.txt') do 1>nul findstr "\<%%i\>" temp.txt || start /wait run.exe /%%i
Автор: BVV63
Дата сообщения: 26.08.2010 07:07
01MDM
Давненько Вас не было видно. В отпуске были? Вы иногда навещаете тему по "PowerShell", я как раз начал его изучать. Запульнул туда пару вопросов, и больше недели тишина. Может Вы поможете?
Автор: LunQ
Дата сообщения: 26.08.2010 07:16

Цитата:
А зачем использовать эту переменную? Передавайте в первом цикле %%i по конвейеру в Find (или Findstr), а затем с учётом %ErrorLevel% в том же цикле For исключайте (или не исключайте) %%i.

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


Добавлено:
01MDM
оказывается регистр имеет значение, маленькие буквы не исключаются, если в другом файле большими указаны.
Автор: BVV63
Дата сообщения: 26.08.2010 07:23
LunQ

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

Так уже ответили.

Цитата:
оказывается регистр имеет значение

Ключ /I заставляет Findstr игнорировать регистр. Т. е. используйте в конструкции, предложенной 01MDM, "Findstr /I".
Автор: 01MDM
Дата сообщения: 26.08.2010 08:47
BVV63

Цитата:
Давненько Вас не было видно. В отпуске были

Скорее наоборот, на работе нет компьютера. Вот и сейчас тыркаю в экран смарта.
Автор: bomzzz
Дата сообщения: 26.08.2010 08:50
может у него любовь, какие тут кампутиры
Автор: Free_Soft
Дата сообщения: 26.08.2010 09:22
Слушайте, как с помощью xcopy скопировать файлы в каталог, которого пока нет?
Иными словами, создать каталог. при использовании ключа /i все равно появляется запрос, типа мол целевое значение это файл или каталог? как его подавить? ключ /y на помогает
Автор: bomzzz
Дата сообщения: 26.08.2010 09:24
Free_Soft
в хп так же что ли?

echo Y|xcopy.... попробуй
ну етот запрос нужен. чтоб различать файлы и папки

Добавлено:
или так
md mypapka
xcopy papka mypapka
Автор: 01MDM
Дата сообщения: 26.08.2010 09:56
Free_Soft

Цитата:
как с помощью xcopy скопировать файлы в каталог, которого пока нет?


Код:
xcopy file.ext futurefolder\
Автор: bomzzz
Дата сообщения: 26.08.2010 10:11
полезное замечание. надо аутоекзек.бат переписать на досах
Автор: Free_Soft
Дата сообщения: 26.08.2010 10:14
01MDM
bomzzz
Спасибо
и совсем уж дилетантский вопрос: как вызвать директорию в которой находится сам батник?
Автор: bomzzz
Дата сообщения: 26.08.2010 10:27
CD /D %~DP0
в смысле вызвать. это сменить рабочую папку на тут где валяется батник
Автор: BVV63
Дата сообщения: 26.08.2010 10:29
Free_Soft
Что значит "вызвать"? Вообще-то для батника родительский каталог "%~DP0" (без кавычек).

Добавлено:
Ага, уже ответили.
Автор: Free_Soft
Дата сообщения: 26.08.2010 10:37
bomzzz
BVV63
Не точно выразился. мне нужно применить атрибуты к каталогу где лежит сам батник
Автор: bomzzz
Дата сообщения: 26.08.2010 10:55
сменить атрибуты что ли?
attrib в досе команда в батниках наверно тоже

Добавлено:
да аттриб. вот у меня батничег который лечит косяк за старой версией акронис ос селектора
ECHO OFF
COLOR 9F
CLS
ATTRIB +R +H +S C:\ntldr
ATTRIB +R +H +S C:\boot.ini
ATTRIB +R +H +S C:\BOOTWIZ\BOOT.INI /S
ATTRIB +R +H +S C:\BOOTWIZ\NTLDR /S
PAUSE
Автор: Free_Soft
Дата сообщения: 26.08.2010 11:53
bomzzz
А есть у тебя что-нибудь, что позволяет из консоли создать ярлык к файлу?
Автор: bomzzz
Дата сообщения: 26.08.2010 12:43
хм. попробуй WMI. но вообще это апи фукция какая то наверно. служба создания ярлыка чета такое. это используется в сборках барт пе. там кажется батником создают. вот conty9 недавно делал ярлыки просил стартер чтоб все ярдыки на одну прогу создавались. то есть точно можно одним батником обойтись

Добавлено:
нет одним батником не обойтись
AutoIt скрипты позволяют создавать ярлыки.

Добавлено:
вбс скрипты умеют
http://forum.script-coding.info/viewtopic.php?id=992

Добавлено:
IShellLink
Designates an interface that allows an application to create and resolve shell links.


читать надо

Добавлено:
http://www.autoitscript.com/autoit3/index.shtml


Добавлено:
Free_Soft
ты на мой взгляд такие задачи пытаешь решить, что тебе на вбс скрипты паро перезжать или сразу на нормальный язык програмирования

Добавлено:
hs_packet на вбс скриптах сделан
Автор: LunQ
Дата сообщения: 26.08.2010 13:43
01MDM
bomzzz
BVV63
Спасибо!!! Работает и просто, а я куда-то в дебри полез.
Автор: Free_Soft
Дата сообщения: 26.08.2010 17:18
есть такая система:

корневой каталог\папка1\run.cmd
корневой каталог setup.exe

нужно батником, лежащим в папке 1 запустить setup.exe, расположенный в корневом каталоге, т.е. на уровень вверх. Как указать путь, если это возможно

Добавлено:
bomzzz
спасибо за подсказку
Автор: bomzzz
Дата сообщения: 26.08.2010 17:27
Free_Soft
в апи справочнике не нашел сходу как ярлыки создавать. спроси готовый скрипт в теме про барт пе
Автор: lorents
Дата сообщения: 26.08.2010 17:37
Добрый день!
Подскажите, как узнать сколько всего картинок в папке и сколько уже обработал цикл?
хочу это информацию указать в заголовке bat-файла.


Код: @echo off
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (

)
Автор: king_stiven
Дата сообщения: 26.08.2010 17:42
Free_Soft

Цитата:
нужно батником, лежащим в папке 1 запустить setup.exe,

cd ..
Автор: bomzzz
Дата сообщения: 26.08.2010 17:43
lorents
ниче ты уже состряпал простыню
Автор: lorents
Дата сообщения: 26.08.2010 17:47
bomzzz
уже убрал, решил не смысла все выкладывать

Если есть желание и время, можешь посмотреть что можно улучшить?
Скажи и я тебе вышлю весь код.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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