IPB

Здравствуйте, гость ( Вход | Регистрация )

> Batch, Вопросы по .bat скриптам
Axolotl
сообщение 28 Dec 2016, 11:46
Сообщение #1

I must gather my party before venturing forth
Сообщений: 5 129
Спасибо сказали: 17836 раз




Не нашел готовой темы. Создал новую.

Такой вопрос. Когда мне нужно обработать все файлы в папке с какой-то командой, то я использую обычную конструкцию FOR - IN - DO
А вот если мне нужно обработать две группы файлов так, что в итоговой команде нужно последовательно соединить файлы из обоих групп - первый с первым, второй со вторым и.т.д.
Как-то это можно же сделать? Или придется уже писать какую-то конструкцию с подстановкой имен/номеров файлов?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
 
Start new topic
Ответов
Throutle
сообщение 30 Apr 2020, 12:46
Сообщение #2

Freedom Fighter
Сообщений: 1 852
Спасибо сказали: 4031 раз




Не уверен на счёт правильности выбора темы...

Пытаюсь соорудить некий механизм для обеспечения портативности программ (в основном игр). Скрипт или софтина не важно. Может кто знает такое и я зря изобретаю велосипед? Что должно происходить:

- Копирование папки\папок\файла\файлов, лежащих рядом, по нужным местам;
- Импорт ветки\веток\записи\записей реестра;
- Запуск программы и ожидание пока она завершится;
- Копирование папки\папок\файла\файлов обратно и удаление;
- Экспорт ветки\веток\записи\записей реестра обратно и удаление;

В идеале, позже доработать логику обработки коллизий (на случай если по указанным расположениям уже есть файлы\записи), и что бы процесс работы был скрыт от пользователя.

На данный момент пытаюсь сделать это через bat, завёрнутый в vbs:

vbs будет выполняет роль оболочки, для того что бы скрыть окно консоли, как-то так:

Код
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\script.bat" & Chr(34), 1, true
Set WshShell = Nothing

(как запустить bat через относительный путь ещё не смотрел, но думаю это не будет проблемой...)

Копирование в обе стороны (я бы даже сказал синхронизация, т.к. не копирует не изменённое, копирует изменённое и удаляет удалённое) отлично реализуется через:

Код
robocopy "%CD%\folder" "%appdata%\folder" /E /Z /R:3 /W:5 /PURGE

Удаление за собой пока тоже не делал, но и тут проблем быть не должно.

А вот с реестром есть проблемы:

Код
reg import %CD%\registry.reg

Помимо не очень удобного reg как такового, есть совсем большаябеда - без повышения привилегий не хватает прав, а с повышением (что не есть проблема, т.к. вызываться будет из другой программы, лаунчера, и должно отработать наследование повышения привилегий) переменная %CD% отдаёт c:\windows\system32, т.е. расположение cmd.exe, а мне нужен динамический путь к файлу\лам reg =(


--------------------
In this wild and woolly universe of ours, there are only three things you can count on: your brains, your bros, and your bike!
Go to the top of the pageAdd Nick
 
+Quote Post

Сообщений в этой теме
- Axolotl   Batch   28 Dec 2016, 11:46
- - Iv   Так на пальцах непонятно, как именно комп должен п...   28 Dec 2016, 14:05
|- - Axolotl   Цитата(Iv @ 28 Dec 2016, 18:05) Так на па...   28 Dec 2016, 14:51
- - tolich   Думаю, этого можно достичь, воспользовавшись вспом...   28 Dec 2016, 18:55
- - Axolotl   Если я правильно понял идею, то сперва, получается...   28 Dec 2016, 21:07
- - Etoprostoya   Папка cadre, файлы c_XXX.png Папка shadow, файлы s...   29 Dec 2016, 06:31
- - Axolotl   Ну т.е. все-таки подстановкой имен. Это я вчера то...   29 Dec 2016, 09:02
- - Axolotl   P.S. Фак. Я совсем туплю. Вот что значит пытаться ...   29 Dec 2016, 11:44
- - feanor   Вечный вопрос про паузу для батника теперь и не че...   24 Jan 2017, 11:17
- - tolich   А почему не @choice /d y /t:20 >nul   24 Jan 2017, 11:58
- - feanor   потому что y можно и случайно нажать, а знак граду...   24 Jan 2017, 12:07
- - tolich   Не, это /d необходим для /t, иначе непонятно, что ...   24 Jan 2017, 13:05
- - Iv   Небольшое вступление: В последнее время стал меньш...   27 Jan 2017, 20:07
- - Axolotl   Он пытается обработать только первую часть имени д...   27 Jan 2017, 22:04
|- - Iv   Цитата(Axolotl @ 27 Jan 2017, 22:04) Тебе...   28 Jan 2017, 12:09
|- - Axolotl   Цитата(Iv @ 28 Jan 2017, 16:09) Нет. Если...   28 Jan 2017, 12:50
- - Iv   Озадачился ещё одним вопросом. Есть картинка ani...   16 Feb 2017, 16:41
- - feanor   Но IM умеет резать на нужное число кусков искоропк...   16 Feb 2017, 16:46
- - Etoprostoya   Iv попробуй использовать проценты в crop https://w...   16 Feb 2017, 16:51
- - Iv   Ага, '@' flag сработал, лист распилился на...   16 Feb 2017, 17:20
- - feanor   Если чо, в батниках нужно указывать два % (%% ) пр...   16 Feb 2017, 17:27
- - Iv   Это я тоже пробовал md %~n1 convert %%1 -crop 4x3...   16 Feb 2017, 18:33
|- - Axolotl   Цитата(Iv @ 16 Feb 2017, 22:33) Это я тож...   16 Feb 2017, 19:04
|- - tolich   Цитата(Axolotl @ 16 Feb 2017, 19:04) А чт...   16 Feb 2017, 19:09
||- - Axolotl   Цитата(tolich @ 16 Feb 2017, 23:09) Цитат...   16 Feb 2017, 19:10
|- - Iv   Цитата(Axolotl @ 16 Feb 2017, 19:04) Цита...   16 Feb 2017, 19:32
- - tolich   Два процента, если имеется в виду параметр for (на...   16 Feb 2017, 19:02
- - Iv   Очередной вопрос: как заменить прозрачный фон в ка...   17 Feb 2017, 18:31
- - Axolotl   Нужно убрать альфа канал после указания цвета фона...   17 Feb 2017, 18:43
- - Throutle   Не уверен на счёт правильности выбора темы... Пыт...   30 Apr 2020, 12:46
- - t800   Цитата(Throutle @ 30 Apr 2020, 15:46) Мож...   01 May 2020, 09:45


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 4 February 2026 - 23:20
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика