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

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

Автор: bomzzz
Дата сообщения: 09.12.2010 13:25
ничего не могу. ну устрой независимые испытания, для различных частей кода батника, методом исключения найди в чем ошибка, и перепиши батник так, чтоб он работал.

если у тебя батник содержит чета кроме самого батника то можно SFX архив сделать
Автор: Free_Soft
Дата сообщения: 09.12.2010 13:29

Цитата:
устрой независимые испытания, для различных частей кода батника, методом исключения найди в чем ошибка, и перепиши батник так, чтоб он работал.
если у тебя батник содержит чета кроме самого батника то можно SFX архив сделать


испытания показали, что затык именно на wmic. если вызывается часть кода, где к нему нет обращения, все проходит хорошо. Кроме батника всего полно, но SFX - не айс, ибо неохота, чтоб в кишках копались
Автор: bomzzz
Дата сообщения: 09.12.2010 13:30
Автор: res2001
Дата сообщения: 09.12.2010 13:32
Free_Soft
Можно использовать для этих целей модифицированный sfx модуль для 7z, есть много настроек, можно запускать в тихом режиме и т.п.
Антивирусы на него не срабатывают.
Я сам не пользовался для упаковки батников этим способом, но юзал для других вещей.
Автор: bomzzz
Дата сообщения: 09.12.2010 13:32
а если вызвать не CALL, а START че будит?

Добавлено:
res2001
не он хатит чтоб у него код батника не украли
Автор: Free_Soft
Дата сообщения: 09.12.2010 13:33
res2001
проблема в том, что любой sfx можно открыть любым архиватором, и все содержимое будет как на ладони...
Автор: bomzzz
Дата сообщения: 09.12.2010 13:35
вместо CALL можно использовать такуу схему. первый батник запускает второй и прекращает свою работу, по отработке второго батника, он запускает первый с командным параметром, первый баник в самом начале кода проверяет с каким параметром его запустили - если без параметра работает с самого начала, а если с параметром то с точки окончания CALL

Добавлено:
а там личные фоты, бис трусоф

Добавлено:
а две консоли вми можно запустить?
Автор: Free_Soft
Дата сообщения: 09.12.2010 13:38
bomzzz

Цитата:
а если вызвать не CALL, а START че будит?

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

Добавлено:

Цитата:
а две консоли вми можно запустить?

возможно (и подозреваю) что в этом и есть трабл на XP. на вынь7 запускается нормально

Добавлено:
может в wmic можно где-то разрешить запуск нескольких консолей?


Добавлено:
Хотя опять, же, если консольное окно не скрывать, все отрабатывает... Западня блин

Добавлено:
две консоли физически запускаются...
Автор: wolf0425
Дата сообщения: 09.12.2010 15:11

Цитата:
проблема в том, что любой sfx можно открыть любым архиватором, и все содержимое будет как на ладони...
так для вскрытия запакованного Bat_To_Exe_Converter - и архиватора не надо, нужен только батник строк из ~трех, который вовремя скопирует распакованный код.

Добавлено:

Цитата:
Хотя опять, же, если консольное окно не скрывать, все отрабатывает... Западня блин
так может проблема не в Bat_To_Exe_Converter, а во взаимодействии скрытия с wmic?
чего хоть от него получить пытаешься, когда виснет?
Автор: Free_Soft
Дата сообщения: 09.12.2010 15:19

Цитата:
так может проблема не в Bat_To_Exe_Converter, а во взаимодействии скрытия с wmic?

скрытие первого батника происходит с помощью самого Bat_To_Exe_Converter. так что очевидно, что проблема как раз во взаимодействии.

Цитата:
чего хоть от него получить пытаешься, когда виснет?

в смысле - какую функцию? Да хоть

Код: for /f "Delims== Skip=2 Tokens=2 UseBackQ" %%0 In (`wmic OS Get LocalDateTime /Value`) Do set LDT=%%0
Автор: wolf0425
Дата сообщения: 09.12.2010 15:23

Цитата:
не совсем понял
чего не понял то? код батника выдирается "на счет раз" из converted.exe в момент исполнения, когда код распакован - если иметь минимальное желание его отловить. никакого архиватора для этого не требуется.
Автор: Free_Soft
Дата сообщения: 09.12.2010 15:29
wolf0425
ну я не ставлю задачу все закодировать до невозможности) Понятно, что все что есть в скомпилированном файле, можно найти и в Temp'e. Однако, когда главный исполняемый файл можно просто открыть через контекстное меню, это, как один товарисч тут говорит, как-то "не кошерно"
Автор: Free_Soft
Дата сообщения: 09.12.2010 17:37
получилось только через start /wait. Спасибо всем за участие
Автор: r00tik
Дата сообщения: 09.12.2010 17:50
Здравствуйте,
захотел использовать проверку на "битость" Zip архивов перед втяжкой в 1С

for /f %j in ('dir /b *.zip') do (7z t -pARCHIVE_PASSWORD %j & IF NOT %ERRORLEVEL% ==0 DEL %j)

и заметил что некоректно возвращаеться код ошибки, причем если попробовать потестить, запустивши несколько раз, в одной консоли

7z t -pARCHIVE_PASSWORD BAD_ARCHIVE.zip & echo %ERRORLEVEL%

=====================================================================

X:\.temp\cmd>7z t -pARCHIVE_PASSWORD BAD_ARCHIVE.zip & echo %ERRORLEVEL%

7-Zip [64] 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03

Processing archive: BAD_ARCHIVE.zip


ERROR: Попытка поместить указатель на файл перед началом файла.


0

X:\.temp\cmd>7z t -pARCHIVE_PASSWORD BAD_ARCHIVE.zip & echo %ERRORLEVEL%

7-Zip [64] 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03

Processing archive: BAD_ARCHIVE.zip


ERROR: Попытка поместить указатель на файл перед началом файла.


2

X:\.temp\cmd>

=====================================================================

Неправильный скрипт или 7z некоректно возвращает код?
Автор: wolf0425
Дата сообщения: 09.12.2010 18:53

Цитата:
7z t -pARCHIVE_PASSWORD BAD_ARCHIVE.zip & echo %ERRORLEVEL%

эта строка печатает не код завершения 7z в ней, а код завершения команды строкой ранее: %ERRORLEVEL% заменяется на значение ДО начала выполнения 7z

Цитата:
Неправильный скрипт или 7z некоректно возвращает код?
неправильный скрипт.
такое надо разбивать на 2 строки.
никогда не используй %ERRORLEVEL% и прочите %переменные% внутри скобок и в одну строку с командами что их изменяют.

а фор что ты хотел в батнике вообще пишется так:

Код: for /f "delims=" %%j in ('dir /b *.zip') do (
7z t -pARCHIVE_PASSWORD "%%~j"
IF ERRORLEVEL 1 DEL "%%~j"
)
Автор: cluster
Дата сообщения: 09.12.2010 19:06
Понадобилось собрать с компов в локальной сети (домен) след. информацию:
- Имя ПК (в качестве имени файла)
- объём свобод. места на системном разделе
- Версию ОС. Сервис пак.

В идеале отчётный файлик будет складываться на сетевой ресурс, откуда всё это можно и посмотреть.

Пробовал сделать с помощью Everest, но у него в отчёте слишком много лишнего, даже когда указаны только нужные параметры для отчёта.

Запускать планируется через GPO
Автор: OnePrg
Дата сообщения: 09.12.2010 19:06
Как расшарить каталог и назначить права доступа?

Если использую net share на XP, то расшаривает всем.
Если использую net share на Vista, то расшаривает только текущему пользователю.
А мне надо чтобы на Viste в одном случае расшаривало всем, а в другом только пользователю (не текущему).
Автор: r00tik
Дата сообщения: 09.12.2010 19:18
Я не сильно разбираюсь, во всем етом, а надо было "на уже". Спасибо большое
Автор: slech
Дата сообщения: 09.12.2010 21:25
cluster

Цитата:

set report=%computername%_report.txt
set share=\\dc
::
echo PCname is %computername% >%share%\%report%
set disk=C:
echo Disk %disk% >>%share%\%report%
fsutil volume diskfree %disk% | find /I "Total # of avail free bytes">>%share%\%report%
set disk=D:
echo Disk %disk% >>%share%\%report%
fsutil volume diskfree %disk% | find /I "Total # of avail free bytes">>%share%\%report%
systeminfo | find /I "OS Name" >>%share%\%report%
systeminfo | find /I "OS Version" | find /v /I "BIOS" >>%share%\%report%
::

PCname is XZ
Disk C:
Total # of avail free bytes : 2586095616

Disk D:
Total # of avail free bytes : 7053115392

OS Name: Microsoft Windows XP Professional
OS Version: 5.1.2600 Service Pack 3 Build 2600




psinfo - может всё сделать и без политик

Цитата:

set report=%computername%_report.txt
set share=\\dc
echo PCname is %computername% >%share%\%report%
echo ------------ >>%share%\%report%
echo Windows: >>%share%\%report%
PsInfo.exe | find /I "Kernel version:" >>%share%\%report%
PsInfo.exe | find /I "Product type:" >>%share%\%report%
PsInfo.exe | find /I "Service pack:" >>%share%\%report%
echo ------------ >>%share%\%report%
echo Disk Space:>>%share%\%report%
PsInfo.exe -d | find /I "Fixed">>%share%\%report%

PCname is XZ
------------
Windows:
Kernel version: Microsoft Windows XP, Uniprocessor Free
Product type: Professional
Service pack: 3
------------
Disk Space:
C: Fixed NTFS System 20.00 GB 2.41 GB 12.0%
D: Fixed NTFS Data 445.76 GB 6.57 GB 1.5%
Автор: wolf0425
Дата сообщения: 09.12.2010 22:38
OnePrg
Цитата:
Если использую net share на Vista, то расшаривает только текущему пользователю.


Код: net share MyFolder=T:\xxx\folder /GRANT:user1,FULL /GRANT:Everyone,READ
Автор: superman md
Дата сообщения: 10.12.2010 00:03
скачал недавно программу одну а в ней антивирус вот это нашёл #

файл host.bat расскажите, точнее объясните мне что это за приблуда такая и для чего...


Автор: Rush
Дата сообщения: 10.12.2010 03:07
superman md

Цитата:
файл host.bat расскажите, точнее объясните мне что это за приблуда такая и для чего...

Батник записывает в файл hosts перенаправление запросов сайта odnoklassniki.ru на сайт netnic.com.cn, а остальных отмеченных на локалхост (на твой же компьютер).
Опасности в этом батнике нет - чисто хулиганство. Просто удали эти строки из файла %windir%\system32\drivers\etc\hosts
Автор: bomzzz
Дата сообщения: 10.12.2010 03:08
я тоже такую байду делал, конвертировал бат то екзе конвертером, для тех в сетке кто плакался, что из однокласников и контактов вылезти не могут. или тем кто вирусы постоянно оттуда притаскивает.
Автор: K0NCTANT1N
Дата сообщения: 10.12.2010 09:53
Распишу все по порядку

Вот такая конструкция свободно отправляет файлы:
Код: SET FilesYes=No
FOR %%f IN (G:\BOX\ISH\*.*) DO SET FilesYes=Yes
IF "%FilesYes%"=="Yes" tomail -fG:\BOX\ISH\*.* -nSERG -hU0H0 -d -t6
Автор: slech
Дата сообщения: 10.12.2010 10:26
for /f "tokens=2-4 delims=:,./- " %%I in ("%DATE%") do set Today=%%K%%I%%J - получаем сегодня - как получить вчера ?
Автор: classics
Дата сообщения: 10.12.2010 10:46
Подскажите, совсем запутался.
У меня скачиваются обновления для XP и собираются они в папке: C:\WINDOWS\SoftwareDistribution\Download.
В папке много подпапок ...0a3b10db49cb8c4e0595e410de6..... Примерно такого вида.
Зайдя в папку, там обязательно есть подпапка \update, в которой есть файл KB2286198.cat с номером обновления.

Я хочу их установить на другой компьютер, прочитал про способ с использованием WinRAR, путем создания самораспаковывающегося архива. Который при распаковке устанавливает обновления...

Помогите с батником для автоматического преобразования скачанных архивов...

Алгоритм я представляю так (может есть еще идеи):
1. Задается цикл по папкам в каталоге обновлений.
2. получаем из имени файла KB2286198.cat номер обновлений - KB2286198
3 Делаем самораспаковывающийся архив с полученным именем, напр, KB2286198.exe (В настройках архива укажем чтобы при окончани распаковке запускался файл /update/update.exe)
4. Перенесем получившийся архив в папку с обновлениями, напр. D:\winupd
5. переходим в следующую папку обновлений \SoftwareDistribution\Download
и так со всеми файлами в папке обновлений.

В результате я получу на выходе файлы
KB2286198.exe
KB982214.exe
Которые можно поставить на новую систему как все вместе, так и только нужное обновление
Автор: K0NCTANT1N
Дата сообщения: 10.12.2010 11:41
slech, как вариант, есть и другой пакетный пример, но он более нагроможден
Автор: slech
Дата сообщения: 10.12.2010 12:26
K0NCTANT1N
спасибо за мысль. использование vbs без vbs файла.
Автор: bomzzz
Дата сообщения: 10.12.2010 12:35
есть VBS to EXE конвертер.
Автор: cluster
Дата сообщения: 10.12.2010 14:12
slech
Огромное спасибо! С PCInfo не стал долго запариваться - первый вариант устраивает.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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