Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd

Модерирует : gyra, Maz

Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

   

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
часть 1 | часть 2 | часть 3 | часть 4 | часть 5
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору > Автоматизация администрирования
Microsoft Windows > Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
> Описание Cmd.exe > Command shell overview
> Using batch files > Using batch parameters > Using filters > Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Выполнение BAT-скриптов без вызова окна консоли
· cmdow - изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· blat - отправка почты из консоли
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)
 
· Архив всевозможных версий cmd.exe (от Windows NT 3.10 до Windows 11 +Win95cmd +ReactOS) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на своей версии ОС.
 
· Большой сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 38953 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: metatrop, 07:55 29-11-2022
vasyosuol 24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000

Цитата:
А если так backup.img.gz

И что, оно "унутри" архива сменит расширение? Так просто?! Что-то я сильно в этом срмневаюсь...

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 10:03 10-04-2023
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vasyosuol 24
Нет никакого "унутри" в данном случае. Внутреннее имя файла получается отсечением расширения .gz
 
Могут быть и gzipы с именем внутри, но не из stdin же

Всего записей: 12593 | Зарегистр. 11-03-2002 | Отправлено: 10:12 10-04-2023
vasyosuol 24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Я это всё понимаю, но для распаковки архива используется скрипт, которому "надо", чтобы внутри файла, содержащегося в backup.gz, был файл с расширением backup.img, иначе он не работает - выдаёт повреждённый архив. Я "ручками" в Винде распаковывал, переименовывал backup в backup.img, а потом gzip'ом запаковывал обратно. И всё работает!
Просто хочется это сделать сразу, и безо всякой Винды (надоела она мне)).
 
Добавлено:
Вот что внутри архива, создаваемого командой:
Код:
sudo dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c > /media/BF8B-5143/backup.gz


А нужно, чтобы файл backup внутри архива, имел имя backup.img - что тут непонятного?
Цитата:
Внутреннее имя файла получается отсечением расширения .gz

Хорошо, пускай "внешнее имя файла" будет Внутреннее имя файла будет backup.img.gz - я не против .
Как? Просто желательно чтобы оно сразу, "на лету" сжимало в .gz (по возможности), для быстроты процесса, так сказать.

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 10:22 10-04-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Следующий найденный в сети код должен конвертировать JPG в PDF в Ghostscript. При запуске пишет, что «"output_file" не является внутренней или внешней командой». Так понимаю, что неверно записаны переменные. Просьба подсказать их правильный формат.

Код:
echo
dir="F:\myFolder"
output_file="F:\myFolder\out.pdf"
pause
 
args=""
 
for file in `find ${dir} -name "*.JPG" -o -name "*.JPEG" -o -name "*.jpg" -o -name "*.jpeg" -type f`;
do
  args="${args} (${file}) viewJPEG showpage"
done
 
 
"C:\Program Files (x86)\gs\gs10.01.1\bin\gswin32c.exe" -q -dNOSAFER -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=${output_file} "C:\Program Files (x86)\gs\gs10.01.1\lib\viewjpeg.ps" -c ${args}

Всего записей: 1384 | Зарегистр. 05-04-2010 | Отправлено: 13:55 10-04-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol 24

Цитата:
sudo dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c > /media/BF8B-5143/backup.gz

команду в интернете подсказали?
 
Для файла:
при упаковке
gzip -N file
При распаковке
gzip -dN file.gz
Для потоков это не работает. Так как выше указали нужно использовать
dd ваши ключи | gzip >backup.img.gz
 
P.S.
Для обсуждения подобных тем есть отдельные ветки.

Всего записей: 7513 | Зарегистр. 08-09-2001 | Отправлено: 14:35 10-04-2023
vasyosuol 24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

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

Ну, наверное

Цитата:
Для потоков это не работает. Так как выше указали нужно использовать  

Я так и не понял - где это, "выше"?

Цитата:
P.S.
Для обсуждения подобных тем есть отдельные ветки.  

Например?
Если можно, пожалуйста, "Не говори загадками!" (с).
Я и так "не в теме", а тут вообще одно слово мз десяти понимаю...

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 14:40 10-04-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D, для find конструкция, мягко говоря, странная.  
 
 
Добавлено:
vasyosuol 24

Цитата:
Ну, наверное

это заметно, и просто на заметку - использование dd без понимания процесса штука очень рискованная чреватая потерей данных.
 

Цитата:
Я так и не понял - где это, "выше"?  

там где вам предложили изменить backup.gz на backup.img.gz. Для понимания:
printf %s\\n test | gzip >foo.gz
mv foo.gz foo.txt.gz
gzip -d foo.txt.gz
 

Цитата:
Например?  

На выбор:
http://forum.ru-board.com/forum.cgi?forum=65

Всего записей: 7513 | Зарегистр. 08-09-2001 | Отправлено: 14:40 10-04-2023
vasyosuol 24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

Цитата:
это заметно, и просто на заметку - использование dd без понимания процесса штука очень рискованная чреватая потерей данных.  

Знаю. Уже Но и начинать (продолжать) всё равно надо. Тем более, что "тренируюсь на кошках", ничего критичного там нет...
Цитата:
Для понимания:
printf %s\\n test | gzip >foo.gz
mv foo.gz foo.txt.gz
gzip -d foo.txt.gz  

Ну, это уже более понятно. Не так, чтобы совсем, но... Хорошо, поэкспериментирую ))

Цитата:
На выбор:
http://forum.ru-board.com/forum.cgi?forum=65

ОК. Т.е. "суровые *никсовые дядьки "живут" там? Я просто ни в одной разе себя к этой категории не отношу, думал - Командная строка и есть Командная строка...
 
Добавлено:
Поэкспериментировал (всё-таки, винда мне пока много "роднее"), получил:

Код:
D:\>printf %s\\n test | gzip >foo.gz mv foo.gz foo.txt.gz gzip -d foo.txt.gz
mv.gz: No such file or directory
 
gzip: foo.gz: unexpected end of file

Получил файл foo.gz нулевого размера, с соответствующим содержанием.
 
P.S.  gzip в системе есть ))

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 15:10 10-04-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol 24

Цитата:
Поэкспериментировал (всё-таки, винда мне пока много "роднее"), получил:  

1. Если все это в одну строку, то к чему удивление?
2. Использовать примеры для *nix в Windows - не лучшая идея. Так как различия есть в использовании кавычек и т.д.

Всего записей: 7513 | Зарегистр. 08-09-2001 | Отправлено: 15:26 10-04-2023
vasyosuol 24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Т.е. то, что вы привели, можно рассматривать как .sh?
 
Добавлено:
los
Под Убунтой частично работает, создался foo.txt с ругательным словом " test" внутри. Но, не запаковался, зараза ((. Никаких сообщений об ошибках просто не было...

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 15:36 10-04-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol 24

Цитата:
Под Убунтой частично работает, создался foo.txt с ругательным словом " test" внутри.

так и должно было быть.
gzip при упаковке файла(не потока) сохраняет его имя, но восстанавливает это имя только если используется ключ '-N' . Если ключ '-N' не используется имя получается путем отбрасывания суффикса .gz.
Т.е.
gzip -d file.gz
будет file
gzip -d file.txt.gz
будет file.txt.
 
В вашем случае имя будет получено именно последним способом т.к. упаковывается поток в котором имени файла нет как такового. Соответственно:
dd какие-то ключи | gzip >backup.gz
gzip -d backup.gz будет получен файл с именем backup, а в случае
dd какие-то ключи | gzip >backup.img.gz
gzip -d backup.img.gz будет получен файл с именем backup.img.
Вы можете переименовать уже готовый backup.gz в backup.img.gz и при распаковке
gzip -d backup.img.gz получите файл backup.img.
 
 

Всего записей: 7513 | Зарегистр. 08-09-2001 | Отправлено: 16:25 10-04-2023
vasyosuol 24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Благодарю! Попробую ещё теперь вкурить это дело
Но, в принципе, у меня всё получилось ещё проще, вот так:

Код:
sudo dd if=/dev/sda conv=sync,noerror bs=5M status=progress | gzip -c > /media/BF8B-5143/backup.img.gz



Цитата:
Вы можете переименовать уже готовый backup.gz в backup.img.gz и при распаковке
gzip -d backup.img.gz получите файл backup.img.

Не могу, к сожалению - это скриптом (не моим) определяется...

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 16:50 10-04-2023
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol 24

Цитата:
Но, в принципе, у меня всё получилось ещё проще, вот так:  
 

я бы использовал '..| gzip >foo.img.gz', а не '...| gzip -c >foo.img.gz'

Цитата:
Не могу, к сожалению - это скриптом (не моим) определяется...

Это было не предложение использовать, а объяснение того как получаются имена.

Всего записей: 7513 | Зарегистр. 08-09-2001 | Отправлено: 17:41 10-04-2023
Qanix

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет нужна помощь мне нужен bat который сможешь копирования txt файлы вместе с каталогом с моего пк на ftp уже все перечитал не чего схожего не могу найти если есть у кого скиньте пример заранее благодарен.
 
То есть на моем пк выглядит так С/Papka/Papka2/TXT/f222.txt
Как нужно что бы выглядело на ftp Ftp/TUT/Papka2/TXT/f222.txt

Всего записей: 9 | Зарегистр. 29-03-2023 | Отправлено: 11:32 11-04-2023
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Qanix

Цитата:
скиньте пример

http://www.imho.ws/showthread.php?p=1720507#post1720507

----------
http://www.imho.ws

Всего записей: 2470 | Зарегистр. 12-10-2006 | Отправлено: 11:43 11-04-2023
sergei5045



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Комрады, помогите допилить батник  который будет лежать в автозагрузке для проверки  корректности  запуска софтины  и будет  запускаться  с правами администратора  при работающей UAC (User Account Control)   после запуска OC.  Пока что добился того, что в win7x64 запускается  но при выключенном UAC , если включить то при запуске батника ошибка  "отказано в доступе"  собственно   бат-файлу нехватает прав доступа  для запуска .  
Код:  
@echo off
Taskkill /IM MSIAfterburner.exe /F
timeout /t 100 /nobreak>nul
 
set profile=1
CHOICE /C 12 /T 5 /D 1 /M "Profile select: 1 - overclock, 2 - default"
IF ERRORLEVEL ==2 (
set profile=2
GOTO check
)
:check
start "" "C:\Program Files (x86)\MSI Afterburner\MSIAfterburner.exe" -profile1
 
Пока что удалось сделать его  функционал только на проверку и перезапуск нужного процесса   MSIAfterburner.exe ) а вот запущена программа или нет он не умеет пока проверять.  
ЗЫ: В Софтине есть штатный метод запуска при загрузке OC но он часто бывает что не срабатывает.  

Всего записей: 7 | Зарегистр. 08-08-2008 | Отправлено: 10:25 20-04-2023
DeZz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergei5045

Код:
NET SESSION
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO ADMINTASKS
 
:ELEVATE
CD /d %~dp0
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
exit
 
:ADMINTASKS
@echo off
Taskkill /IM MSIAfterburner.exe /F
....
...

Всего записей: 1201 | Зарегистр. 23-01-2006 | Отправлено: 10:39 20-04-2023
Inoz2000



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergei5045
зачем вообще это Taskkill /IM MSIAfterburner.exe /F в автозагрузке? Разве MSIAfterburner.exe уже запущен
зачем вообще set profile, если в коде ни разу не используется %profile%
 
остаётся только последняя строка и что, для неё нужны повышенные права?

----------
Мы все умрём. (-:

Всего записей: 5069 | Зарегистр. 23-04-2009 | Отправлено: 10:43 20-04-2023
sergei5045



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeZz  
Цитата:
на права перестал ругаться , убиват процесс  , на этом все перезапуск не произошел  

 
 
 
Inoz2000  Может не совсем четко изложил мыли  , но в моем вопросе так же  есть фраза что хотелось бы чтобы и запуск это батник проверял запущена ли программа или нет  (set profile пока не задействован , думаю можно выкинуть эту строку) это батник слеплен из двух,   Не разобрался только  как повысить ему права на запуск и с  перезапуском самой софтины  . ( в win7 с отключенным UAC работает, а вот в 10-ке уже нет, фактически он  готов, чуть  чуть допилить нужный функционал)    
 
[на одном ресурсе нашел вот такой пример, но подружить со его не удалось
Пример запуска батника с правами trustedinstaller
Код:
@echo off
cd /d "%~dp0"
if /i not "%USERNAME%"=="SYSTEM" RunAsTI.exe "%~f0" %* & exit
echo Running as System
pause  
 

Всего записей: 7 | Зарегистр. 08-08-2008 | Отправлено: 12:18 20-04-2023 | Исправлено: sergei5045, 12:47 20-04-2023
Inoz2000



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergei5045
Цитата:
на права перестал ругаться , убиват процесс  , на этом все перезапуск не произошел  
откуда эта цитата?
 

Цитата:
в моем вопросе так же  есть фраза что хотелось бы чтобы и запуск это батник проверял запущена ли программа или нет
ага, я спрошу ещё раз. Зачем проверять? Вы разве сами не можете отключить её запуск в её же настройках.
 
Добавлено:

Цитата:
Не разобрался только  как повысить ему права на запуск
вам DeZz пример дал

Всего записей: 5069 | Зарегистр. 23-04-2009 | Отправлено: 13:07 20-04-2023
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd
Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru