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

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

Автор: TechnicsKuzya
Дата сообщения: 27.12.2009 13:04
GORA2, вышеуказанным Вами скриптом, Вы не получили доступ к реальной папке %Windir%\System32 из под 32-битного командного процессора 64-битной ОС, точка. Конкретно я не утверждал, что доступа к папкам, нет, это Ваши слова.

P.S. Если Вас не интересовал изначально этот вопрос, не надо было вообще начинать всю эту болтологию.
Автор: yurkesha
Дата сообщения: 27.12.2009 13:08
TechnicsKuzya
Ты не прав.
Безо всяких статей базы знаний - выдержка из хелпа по start /?:
Код: При выполнении командной строки, первым элементом которой является текстовая
строка "CMD" без расширения имени файла или указания пути, она заменяется
значением переменной COMSPEC. Это предотвращает запуск CMD.EXE из
текущей активной папки, если таковая программа там имеется.
Автор: TechnicsKuzya
Дата сообщения: 27.12.2009 13:15
yurkesha, уж расшифруйте, как Вы это понимаете.

С учетом данного примера. И запуска с использованием расширения имени файла и указанием полного пути.

P.S. Я так полагаю расшифровывать прийдется мне Вам, с учетом того, что переменная ComSpec имеет одинаковое значение в обоих случаях.
Простая задача - запустите из 32-битного командного процессора, 64-битную версию, которая находится в папке %WinDir%\System32. А после этого объясните, коим боком Вы приплели переменную окружения %ComSpec%.
Автор: yurkesha
Дата сообщения: 27.12.2009 13:58
TechnicsKuzya
Сам запуск cmd.exe некоректен в качестве примера.
Расмотри лучше запуск любой другой проги 64 бит из 32-разрядной консоли или 32 бит из-под 64-х разрядной консоли. В этой ситуации разницы нет.
Расшифровывать мне не надо - я и так в курсе что запуск cmd.exe зависит от ряда условий...

Цитата:
коим боком Вы приплели переменную окружения %ComSpec%.
start /? - я же писал уже...
Автор: TechnicsKuzya
Дата сообщения: 27.12.2009 14:06
yurkesha, пожалуйста, не нравится в качестве примера консоль cmd.exe, "доберитесь" до 64-битного файла запуска "Подключение к удаленному рабочему столу":


Код: @Echo Off
Start "x64" c:\Windows\System32\mstsc.exe
Start "x32" c:\Windows\SysWOW64\mstsc.exe
exit
Автор: SeriouSShat
Дата сообщения: 29.12.2009 09:34
Как с помощью bat файла, можно создавать файлы *.txt, где * - это произвольное имя файла, которое генерится случайным образом из букв или цифр (например, чтобы при запуске name.bat создавался файл hgfhf.txt, если запустить name.bat повторно - будет создан dlfjskl.txt)?
Автор: slay1212
Дата сообщения: 29.12.2009 09:57
GORA2
TechnicsKuzya

Цитата:
GORA2, вышеуказанным Вами скриптом, Вы не получили доступ к реальной папке %Windir%\System32 из под 32-битного командного процессора 64-битной ОС, точка.

Эт да . Попробуй в фаре или тотале в винде x64, посмотреть например файл hosts . Думаю ты его не найдешь, хотя он там есть . А через проводник - но проблем. Также и при составлении батников надо это учитывать
Чем спорить лучше народу бы выложили кусок кода для проверки приложений

Цитата:
написать скрипт, который будет одинаково работать как в 32-битной ОС, так и в 64-битной ОС, тогда, возможно, поймете суть проблемы

Автор: noiseless
Дата сообщения: 29.12.2009 10:12
SeriouSShat
См. переменную %RANDOM%

set filenam=%random%
echo > %filenam%.txt
Автор: TechnicsKuzya
Дата сообщения: 29.12.2009 12:54
Все просто, для проверки соответствия среды в Script name.cmd:

Код:
if not "%PROCESSOR_ARCHITECTURE%"=="AMD64" (exit)
Автор: wolf0425
Дата сообщения: 29.12.2009 20:04

Цитата:
Различаются не только переменные среды, но и возможности доступа к папкам.

так вот какой-то разницы возможностей доступа к папкам из батника, не связанных с разными настройками предустановленных переменных - пока и не видно.
И даже пример с диром системных папок дан.
Я чего-то пропустил?
Автор: AntoshAReal
Дата сообщения: 29.12.2009 20:14
Люди, помогите, пожалуйста
Необходимо создавать .reg файл при запуске сценария, но что бы содержалась инфа, поступившая из батника и было добавление в реестр.

Поясняю:
Необходимо, что бы в .reg фал добавлялась инфа:


Код: Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\UserInfo]
"UserInitials"="Инициалы"
"CompanyName"="Имя компании"
"Company"="Компания"
"UserName"="Имя пользователя"
Автор: slay1212
Дата сообщения: 30.12.2009 08:27
TechnicsKuzya
wolf0425
Вывод команд dir c:\windows\system32\drivers из cmd (w2k3 r2 x64)
x32:
.....
12 files
2 dir(s)
x64:
......
186 files
6 dir(s)
папка system32 x32 : 1594 и 23
x64 : 1746 и 54
Вроде налицо небольшая разница . Значения разные тк при явном указании в команде
папки system32 команда работает в папке syswow64
Редирект конечно идет не на все папки но несомненно надо его учитывать при создании батников в 64х битной среде


Автор: TechnicsKuzya
Дата сообщения: 30.12.2009 09:22
slay1212, а я тут причем . Я выше вроде все расписал, кому суждено и кому это действительно необходимо, тот все поймет.
Автор: GORA2
Дата сообщения: 30.12.2009 09:55
TechnicsKuzya
Приведите пример (дайте ссылку) готового инсталлятора для установки какой нибудь программы, работающей в двух вариантах (х86 и х64), который бы:
- был универсальным
- не зависел от разрядности системы, в которой производится установка
- не зависел от среды запуска на х64 системах
- требовал доступа к "проблемным" системным папкам
- показал преимущества предлагаемого Вами метода установки

Т.е., не отдельные строки батников, которые еще как то нужно объединить, а именно готовое изделие - инсталлятор.
Автор: KLERIK2222
Дата сообщения: 30.12.2009 10:57
помогите, замучался искать.
пару лет назад, нашел на боарде очень полезный батник по созданию списка файлов в папке.
работало это так:
по папке жмем второй кнопкой мыши, там в меню была строка "создать список файлов", нажимаешь и в этой папке создавался текстовой файл с именами всех файлов в ней лежащих.
переустановил винду, но забыл сохранить этот батник. теперь никак не могу найти его.
помогите найти или написать что-нибудь подобное.
Автор: TechnicsKuzya
Дата сообщения: 30.12.2009 12:07
KLERIK2222

Код: dir /B>Files.txt
Автор: GORA2
Дата сообщения: 30.12.2009 12:55

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

TechnicsKuzya
Что ж Вы убегаете как нашкодивший мальчишка?
Я Вас не просил меня учить, я свои университеты 30 лет назад закончил и знаю, что хамить незнакомым людям неприлично, но Вам папа с мамой, видимо, этого не объяснили!
Автор: KLERIK2222
Дата сообщения: 30.12.2009 12:55
TechnicsKuzya
спасибо. в отдельной папке батник работает. но как поместить его в контекстное меню для любой папки? поиск не дает результатов
Автор: TechnicsKuzya
Дата сообщения: 30.12.2009 14:00
GORA2, если 30 лет назад закончили и остановились, тогда тем более Вам не помешает освежить Ваши знания, т.к. из вышеприведенных Ваших постов ясно одно, либо Вы не хотите или не можете понять суть изложенного, либо считаете себя умнее других.

P.S. Насчет "убегаете" - все, что я хотел изложить, я изложил. Очень интересно, какую мою фразу Вы сочли за хамство?
Автор: KLERIK2222
Дата сообщения: 30.12.2009 14:14
контекстное меню папки редактируем через реест.
например создаем такой раздел
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\Создать список файлов\command
значению "По-умолчанию" нужно присвоить, либо путь до батника, тогда создается список файлов в той папке, где лежит сам батник, а не той, по которой щелкаю второй кнопкой мыши. либо прописать сам код, тогда вообще ничего не происходит, вылазит черное окно и всё.

незнаю, что делать
Автор: maa78s
Дата сообщения: 30.12.2009 14:36
Всем привет!
Никто не может подсказать как можно решить задачу, которую я описывал тут:
http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=2000#21

Буду очень благодарен
Автор: TechnicsKuzya
Дата сообщения: 30.12.2009 14:49
maa78s, используйте конструкцию IF EXIST path\filename () ELSE ()

В первые скобки вставляете команду принудительного копирования и вывод в текстовый файл, во вторые просто команду копирования. Либо в первые только вывод в текстовый файл, а после конструкции IF EXIST, команду принудительного копирования.
Автор: Nagual
Дата сообщения: 31.12.2009 17:02
maa78s
я бы воспользовался robocopy:
(устал уже повторять что для папок нет ничего идеальнее)
robocopy/mir "что" "куда"|findstr Newer>txt.log
в логе с меткой "Newer" будут чётко отображены размер и имя изменённых файлов


Добавлено:
так лог почище будет
echo.>txt.log&for /f "tokens=3" %%a in ('robocopy/mir "что" "куда"^|findstr Newer') do echo %%a>>txt.log
Автор: 01MDM
Дата сообщения: 31.12.2009 19:19
Друзья!, всех с наступающим 2010 годом! Желаю здоровья, удачи, успехов.
C Уважением, Дмитрий.
Автор: ruslan55x55
Дата сообщения: 01.01.2010 14:49
Здравствуйте! Всех с новым годом!
У меня тут был вопрос, нужно решить такую задачу: с помощью Bat файла из директории Program files нужно удалить папки в именах которых содержатся определенные символы(например удалить папки содержащие в своем имени слово mir), папки нужно удалять со всем содержимым(включая файлы и папки). Заранее Спасибо!
Автор: mugil_cephalus
Дата сообщения: 01.01.2010 21:35
ALEKCEN

Цитата:
И ещё,подскажите где найти инфу,как создать свой .inf файл,что в нём должно содержаться и т.д. и т.п.

http://oszone.net/3827
Автор: wolf0425
Дата сообщения: 02.01.2010 01:31
ruslan55x55
Цитата:
из директории Program files нужно удалить папки в именах которых содержатся определенные символы
например как-то так:
Код: for /d %%i in ("C:\Program Files\*.*") do (
echo %%~nxi | findstr mir && rd /s /q "%%~fi"
echo %%~nxi | findstr war && rd /s /q "%%~fi"
)
Автор: ruslan55x55
Дата сообщения: 02.01.2010 12:48
Большое Спасибо вам wolf0425 за помощь!, у меня все никак не получалось, я еще не совсем хорошо разбираюсь в этих командах.
Автор: mugil_cephalus
Дата сообщения: 02.01.2010 14:07
походу аберрация EQL (EQU - equal) многим жизнь попортила(тит) - вот Joo1z from page 58:


Цитата:
slay1212
Все возможно. Временно создаешь файл куда скидываешь нужные настройки введенные с консоли, а потом переименовываешь его в исходный. А обработку делаешь из IF и SET.


Код:IF %param1% NOT EQL "Желаемое значение" (
ECHO Введите желаемое значение
SET /p %param1%=
)

Автор: niko7
Дата сообщения: 03.01.2010 11:28
Подскажите, нужно получать вчерашнюю дату. Сделал так:
set /a da = %date:~0,2%
set /a ok = da -1
Проблема в том, что первое число каждого месяца минус 1 получается 0, а надо последнее
число месяца. Может есть какой-нибудь красивый способ .

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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