Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.65/478: Рейтинг темы: голосов - 478, средняя оценка - 4.65
Dragokas
Эксперт WindowsАвтор FAQ
17008 / 7064 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
1

Ключи запуска программ, вспомогательные утилиты (Windows Resource Kit, Support Tools)

02.10.2012, 01:52. Просмотров 87591. Ответов 58

1) Вспомогательные консольные утилиты:

Windows Resourse Kit + Support Tools тема
GNUWin32 SourceForge
nirCMD Полный перечень команд
Прочие http://www.mycmd.com/ (freeware + shareware)

2) Ключи запуска программ

Практически каждая программа принимает в параметрах "объект запуска" и ключи, например:
Bash
1
2
3
4
5
6
7
8
:: Открыть папку в корне диска C: и выделить в ней файл autoexec.bat
explorer.exe /select,c:\autoexec.bat
 
:: Запуск файла c:\file.txt в блокноте
notepad.exe c:\file.txt
 
:: Открыть наш форум в Internet Explorer-е
"%ProgramFiles%\Internet Explorer\iexplore.exe" "http://www.cyberforum.ru"
Правила этой темы

Их пока нет Выкладываем ключи, которые считаете нужными.
Основную часть материала возьмем по-дружески у Rob van der Woude.
Все предложения прошу в тему: Предложения по совершенствованию раздела и закреплению в "ВАЖНЫЕ" новых тем


Список программ, к которым выложены ключи запуска:
Метки:
- консольная
- имеет графический интерфейс

 
Название программы
Имя бинарного файла
ссылка
оф. сайт
Краткое описание
 Архиваторы    
7zip7za.exe (7z.exe)эта темасайт 
WinRARrar.exe, WinRAR.exeссылкасайт 
 Дата, время    
Uptimeuptime.exeэта темасайтВыводит время с момента загрузки ОС
 Многофункциональные    
NirCMDnircmd.exeэта темасайтРабота с окнами и др.
 Мультимедиа    
  - Графика    
ImageMagick Convert ссылкасайтПреобразование изображений
Exif Jpeg header manipulation tooljhead.exeссылкасайтМодификация хидера Jpeg файлов
Exiv2 - CLI и библиотека DLLexiv2.exeссылкасайтЧтение и изменение метаданных изображения
  - Видео    
VideoLAN VLC media player vlc.exeссылкасайт 
 Интерфейс    
CMDOWcmdow.exe сайтСпрятать окно процесса
 Информация    
MediaInfoMediaInfo.exeэта темасайтПолучение тех. сведений о видео-, фото-, аудио-файлах
 Системные    
ConClipGetClip.exe, SetClip.exeэта темасайтПолучение и сохранение теста в буфер обмена
Проводник explorer.exeэта тема  
 HTML Helphh.exeэта тема  
Internet Explorer iexplore.exeэта тема  
 MS WinHelp winhlp32.exeэта тема  
Редактор реестра regedit.exe, regedt32.exe, reg.exeэта тема  
 Текстовые и офисные    
Adobe Acrobat ReaderAcroRd32.exeэта темасайт 
Win_iconvwin_iconv.exeэта темасайтКонвертирование текстовых файлов с одной кодировки в другую
SQLiteSqlite3.exeэтот постсайтИспользование SQLite для работы с тестом
 Установщикисм. программу ->программа  
 Inno Setupsetup.exe...сайт 
 InstallShield (+ MSI)setup.exe...сайт 
 Windows® MSI (msiexec)setup.msi...сайт 
 NSISsetup.exe...сайт 
 Wisesetup.exe...  
 Файловые    
 Acronis Backup Recovery Server 10trueimagecmd.exeэта темасайт 
Process Viewerpv.exe, PrcView.exeэта тема Отслеживание процессов, смена приоритетов, завершение.
fsumfsum.exeэта темасайтКонтрольная сумма файлов CRC32, MD5, SHA512...
FileVerfilever.exeэта темасайтСведения о версии EXE-файла

Планируемые к рассмотрению утилиты:
ImageCFG - задание распределения нагрузки на процессоры в многопроцессорной системе (патчер PE-EXE).
Cabinet Archieve.
nconvert из пакета XnView
Утилиты из GNUWin32
Hidec
Утилиты из состава Windows Resourse Kit и Support Tools
http://www.runtime.org/driveimage_faq.htm
10
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2012, 01:52
Ответы с готовыми решениями:

Windows Resource Kit
Иногда требуется утилита из набора Windows Resource Kit, но на сайте MS...

WiLD: Основной код и вспомогательные утилиты
Составная тема проекта WiLD: http://www.cyberforum.ru/cmd-bat/thread866656.html...

Опции, Аргументы, Ключи, Параметры, Входные данные запуска процесса. Как узнать?
Здравствуйте!!! Возможно ли в windows какими- либо способами (типа...

ATI Tray Tools 1.2.6.955 - новая версия утилиты для разгона видеокарт семейства Radeon
Выпущена обновленная версия небольшой утилиты ATI Tray Tools. Программа...

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

58
Smitis
1629 / 338 / 39
Регистрация: 15.10.2012
Сообщений: 530
02.10.2014, 21:26 41
Специально для CyberForum.ru
XFORFILES - обработка файлов по заданным условиям с обходом дерева папок.
Обсуждается: здесь.

Сделана для замены штатной FORFILES.
Кликните здесь для просмотра всего текста

Утилита консольная, юникодная. Синтаксис от FORFILES отличается. Параметры задаются в виде /ключ:значение. Как только попадается параметр, начинающийся не на /, разбор командной строки заканчивается и всё остальное рассматривается как выполняемая команда. Таким образом, команда должна быть последней после всех параметров. Это позволяет более гибко задавать командную строку, по сравнению с FORFILES. Однако, поэтому нельзя заключать параметры XFORFILES полностью в кавычки - параметр будет воспринят как начало команды. Если значение параметра содержит пробелы, в кавычки следует заключать только само значение: /ключ:" з н а ч е н и е".
Разбор командной строки также заканчивается после ключей /C и /E. Первый передаёт остаток строки командному процессору, второй включает режим вывода (ECHO) (см. далее).

Использование:
XFORFILES [параметры] [команда|/C команда|/E строка]

/C[:параметры] команда - выполняет "%comspec% параметры /C команда" для каждого найденного объекта.
/E строка - выводит строку для каждого найденного объекта.
Иначе строка команды разбирается - предполагается, что в начале идёт программа, возможно, заключённая в кавычки, остальное - параметры.

Параметры:

/F - Обрабатывать папки, иначе обрабатываются файлы (далее речь пойдёт как об обрабатываемых объектах файловой системы).
/M:include - Маски выбираемых объектов в стандартном виде, перечисленные через точку с запятой.
Примеры:
*.jpg
*.doc;*.docx;readme.*
/X:exclude - Маски исключаемых объектов, перечисленные через точку с запятой.
/H - Обрабатывать скрытые и системные объекты (имеющие установленные атрибуты скрытый и/или системный).
/R:pattern - Обрабатывать объекты с именами, сопоставимыми с регулярным выражением (для файлов - имя без расширения).
/CS - Учитывать регистр букв при сопоставлении с регулярным выражением в /R.
/EXT - Для файлов сопоставлять с именем+расширение.
/S[:pattern] - Обходить дерево папок, если задан шаблон, имя папки должно быть сопоставимо с регулярным выражением.
/SH - Обходить скрытые и системные папки.
/SCS - Учитывать регист букв при сопоставлении имён папок для /S.
/L:level - Уровень обхода папок, 0 - не обходить (отменить действие /S).
Ключ /S без /L - глубина обхода не ограничена.
Если есть /L, ключ /S можно не указывать.
/DS:yyyy-mm-dd - Задать дату, с которой будут сравниваться даты объектов.
/DF:file - Взять дату объекта как дату для сравнения
/D:x - Только объекты, старше на x дней.
/D:x:y - Только объекты, старше на x дней, но не более y дней.
/ENV - Устанавливать переменные среды XFF_...
/P:path - Начальная папка.
/NOCD - Не изменять текущую папку (синонимы /NC /NOCHDIR).
/Q - Отключение части сообщений (Quiet).

Текущая папка.
Утилита делает текущей папкой, папку, указанную в параметре /P. Затем, делается текущей каждая обрабатываемая папка, поэтому для обработки объектов в ней в большинстве случаев достаточно просто указывать {file}. После завершения обработки папки, восстанавливается предыдущая текущая папка. После выполнения команды также восстанавливается текущая папка (на всякий случай). И по окончании работы утилиты также восстанавливается начальная текущая папка. Это поведение отключается ключом /NOCD - после этого текущая папка НИКОГДА не меняется и не восстанавливается.

Сравнение по датам.
Допустим, сегодня 2014-10-02. Ключ /D:1 укажет обрабатывать файлы старше на 1 день, т.е., все файлы, имеющие дату модификации 2014-10-01 и старше. Ключ /D:2:4 укажет обрабатывать файлы с датой между 2014-09-30 и 2014-09-28.
В планах расширить сравнение по дате: по месяцам, годам, даже часам, минутам..., сделать относительное сравнение, например, файл старше на сутки (старше на 60*60*24 секунд) и т.п.
Для сравнения берётся текущая дата на момент запуска XFORFILES. Это значение можно поменять ключами /DS и /DF.

Подставляемые переменные.
Переменные, подставляемые в строку команды (или строку вывода для /E), в отличии от FORFILES, имеют вид {переменная}. Это позволяет более чётко выделить переменную в строке команды. Переменные:
{FILE} - имя файла с расширением
{FNAME} - имя файла без расширения
{EXT} - расширение файла (с точкой)
{FPATH} - путь к файлу
{FFULL} - полный путь (путь+имя файла с расширением)
{FDATE} - дата модификации файла в виде YYYYMMDD
{FDATE4} - дата модификации файла в виде YYYYMMDD (четыре цифры года)
{FDATE2} - дата модификации файла в виде YYMMDD (две цифры года)
{FTIME} - время модификации файла в виде HHMMSS
{FDATE:format} - форматированные по шаблону дата/время (в планах)
{FSIZE} - размер файла в байтах
{DATE} - или дата на момент запуска XFORFILES, или установленная ключём /DS, или взятая дата модификации файла в ключе /DF) в виде YYYYMMDD
{DATE4} - то же в формате YYYYMMDD
{DATE2} - то же в формате YYMMDD
{DATE:format} - форматированные по шаблону дата и время (в планах)
{SPATH} - начальная папка - текущая или заданная ключём /P
{CURRENT} - имя папки, в которой находится текущий обрабатываемый объект
{PARENT} - аналогично, имя родительской папки
{RPATH} - путь относительно начального {SPATH}, начинается с .\ Не имеет особого смысла при ключе /NOCD
Все пути завершаются "\".

Специальные знаки:
{{} - "{"
{P} - percent "%"
{Q} - quote """
{C} - caret (circumflex) "^"
{G} - greater ">"
{GG} - double greater ">>"
{L} - less "<"
{A} - ampersand "&"
{AA} - double ampersand "&&"
{I} - pipe "|"
{II} - double pipe "||"
{GA} - greater + ampersand ">&"
{LA} - less + ampersand <&
{#000} - десятеричный код символа (в планах)
{$00} - шестнадцатиричный код символа (в планах)
{$0000} - шестнадцатиричный код юникодного символа (в планах)

Регистр символов в переменных и специальных знаках значения не имеет.

Переменные среды, устанавливаемые при /ENV и их соответствие подставляемым переменным:
XFF_FILE - {FILE}
XFF_FNAME - {FNAME}
XFF_EXT - {EXT}
XFF_FPATH - {FPATH}
XFF_FFULL - {FFULL}
XFF_FDATE - {FDATE}
XFF_FTIME - {FTIME}
XFF_FSIZE - {FSIZE}
XFF_DATE - {DATE}
XFF_SPATH - {SPATH}
XFF_CURRENT - {CURRENT}
XFF_PARENT - {PARENT}
XFF_RPATH - {RPATH}
2
Вложения
Тип файла: 7z xforfiles.1.00.7z (62.0 Кб, 12 просмотров)
sov44
1758 / 742 / 128
Регистрация: 09.04.2011
Сообщений: 1,313
06.10.2014, 16:08 42
Наборы hidcon.exe для х86 и х64 систем.
автор Andrew Grechkin (http://code.google.com/p/andrew-grechkin/)

win_iconv.exe
upd 15.01.2014 http://dll-ocx.com/download/win_iconv.exe/16385.html
3
Вложения
Тип файла: 7z hidcon-v1.1.4.7z (9.1 Кб, 33 просмотров)
Тип файла: 7z win_iconv.7z (10.8 Кб, 18 просмотров)
sov44
1758 / 742 / 128
Регистрация: 09.04.2011
Сообщений: 1,313
01.11.2014, 08:38 43
FtpUse http://www.ferrobackup.com/ftpuse
Монтирует FTP каталог как логический диск.
2
Dragokas
Эксперт WindowsАвтор FAQ
17008 / 7064 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
13.11.2014, 12:59  [ТС] 44
Конвертирование doc в html, doc в fb2.

Конвертер TXT в FB2
0
Dragokas
Эксперт WindowsАвтор FAQ
17008 / 7064 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
29.12.2014, 15:54  [ТС] 45
Консольные конвертеры текстовых документов
1
sov44
1758 / 742 / 128
Регистрация: 09.04.2011
Сообщений: 1,313
21.04.2015, 13:47 46
Русифицированная версия wget (файл локализации)
2
Вложения
Тип файла: 7z wget_ru.7z (751.8 Кб, 33 просмотров)
Dragokas
Эксперт WindowsАвтор FAQ
17008 / 7064 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
11.06.2015, 16:42  [ТС] 47
Диалоговое окно открытия файла/папки

Набор кодов и программ с исходниками (силами наших форумчан)
1
sov44
1758 / 742 / 128
Регистрация: 09.04.2011
Сообщений: 1,313
28.06.2015, 19:07 48
Сделал конструктор для поиска и скачивания крайней версии utorrent.
Из особенностей:
- портабельная версия
- русская локализация
- возможность тихой установки
- чистое удаление
- мультисистемность и кроссплатформенность
- ярлык в меню пуск\утилиты и на панели быстрого запуска.
Кликните здесь для просмотра всего текста
Windows Batch file
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
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
:: сайт прграммы [url]http://www.utorrent.com/intl/ru[/url]
:: Загрузка [url]http://www.utorrent.com/intl/ru/downloads/complete/os/win/track/stable[/url]
:: языковой пакет [url]http://www.utorrent.com/scripts/dl.php?track=stable&build=37951&client=utorrent[/url]
::[url]http://download-new.utorrent.com/os/windows/track/stable/endpoint/utorrent[/url]
 
@echo off
setlocal enabledelayedexpansion
color 1a
 
:: Определяем наличие прокси, если есть, создаём файл ini
if exist tools\wget.ini del /q tools\wget.ini 1>nul
 
SET UNISTALL=HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings
for /f "tokens=2*" %%i in ('reg.exe query "%UNISTALL%" ^|find.exe /i "ProxyEnable"') do set Proksi=%%j
for /f "tokens=2*" %%a in ('reg.exe query "%UNISTALL%" ^|find.exe /i "ProxyServer"') do set IP=%%b
 
if "%Proksi%"=="0x1" (
>> tools\wget.ini Echo http_proxy = %IP%
>> tools\wget.ini Echo use_proxy = on
)
 
:: создаём временные папки
if exist TempZ\unpack rd /s /q TempZ\unpack
md TempZ\unpack 2>nul
 
:: адрес на скачивание стабильной версии
set sURLP=http://download-new.utorrent.com/os/windows/track/stable/endpoint/utorrent
 
:: качаем основной файл
echo.
set /p uSel1="Загрузить utorrent из интернет? [Enter - нет, 1 - да, 9 - выход] "
Echo.
if "%uSel1%"=="9" (goto :_DelTemp& exit /b)
If "%uSel1%"=="1" (tools\wget.exe -N -P "TempZ\unpack" "%sURLP%" 1>nul 2>&1& ren "%~dp0TempZ\unpack\utorrent" utorrent.exe >nul)
 
:: качаем файл локализации @ComSpec _http://www.cyberforum.ru/cmd-bat/thread1284369.html
set "dir=TempZ\unpack"
set "url=http://www.utorrent.com/scripts/dl.php?track=stable&build=37951&client=utorrent"
 
2>nul md "%dir%"
>.vbs (
echo Set x=CreateObject("MSXML2.XMLHTTP"^)
echo x.Open "GET","%url%",False
for %%i in (
 "x.Send"
 "If x.Status=200 Then"
 " With CreateObject("ADODB.Stream")"
 "  .Open"
 "  .Type=1"
 "  .Write x.ResponseBody"
 "  .Position=0"
 "  .SaveToFile "%dir%\utorrent.lng",2"
 "  .Close"
 " End With"
 "End If"
 ) do @echo %%~i
)
 
cscript //nologo .vbs& del .vbs
 
:: делаем нулевой файл настроек (необходим для создания портабельной версии)
type nul > "%~dp0TempZ\unpack\settings.dat"
 
Echo.
Echo.
 
:: Определяем версию скачанной программы
for /f "tokens=1* usebackq" %%a in (`tools\filever.exe /V "TempZ\unpack\utorrent.exe" ^| FIND "FileVersion"`) do set vrs=%%b
 
:: Правка файла настройки - замена версии на актуальную
Echo Копирование файла настроек...
copy /y "tools\settings.dat" "TempZ\unpack\" 1>nul
 
:: пишем inf
Echo Создание inf...
(Echo [Version]
Echo Signature="$Windows NT$"
Echo.
Echo [DefaultInstall]
Echo AddReg         =PROG.AddReg
Echo ProfileItems   =PROG.AddShortcut1,PROG.AddShortcut2
Echo.
Echo [Uninstall]
Echo BeginPrompt        =BeginUnInsPrompt
Echo RunPreSetupCommands    =Close.Prog:1
Echo RunPostSetupCommands    =Dir.Delete:1,File.Delete:1
Echo EndPrompt      =EndUnInsPrompt
Echo DelReg         =PROG.DelReg
Echo ProfileItems           =PROG.DelShortcut1,PROG.DelShortcut2
Echo.
Echo [BeginUnInsPrompt] 
Echo Title          =Деинсталляция %%PROG_NAME%%
Echo Prompt         =Вы действительно хотите удалить %%PROG_NAME%% и все компоненты программы? 
Echo ButtonType     =YESNO
Echo.
Echo [Close.Prog]
Echo TASKKILL /F /IM %%PROG_1%%
Echo.
Echo [Dir.Delete]
Echo rundll32.exe advpack.dll,DelNodeRunDLL32 "%%16422%%\%%PROG_DIR%%"
Echo rundll32.exe advpack.dll,DelNodeRunDLL32 "%%16410%%\%%PROG_DIR%%"
Echo.
Echo [File.Delete]
Echo cmd.exe /c "Del /q /f %%17%%\%%NAME_INF%%.*"
Echo.
Echo [EndUnInsPrompt]
Echo Prompt         =Программа %%PROG_NAME%% удалена.
Echo.
Echo [PROG.AddReg]
Echo HKLM,"%%KEY_UNINST%%","DisplayIcon",0,"%%16422%%\%%PROG_DIR%%\%%PROG_1%%"
Echo HKLM,"%%KEY_UNINST%%","DisplayName",,"%%PROG_NAME%%"
Echo HKLM,"%%KEY_UNINST%%","Publisher",,"%%PROG_MADE%%"
Echo HKLM,"%%KEY_UNINST%%","UninstallString",,"rundll32 advpack,LaunchINFSection %%17%%\%%NAME_INF%%.inf,Uninstall"
Echo.
Echo [PROG.DelReg]
Echo HKLM,"%%KEY_UNINST%%"
Echo.
Echo [PROG.AddShortcut1] 
Echo Name   =%%SRTC_NAME%%
Echo CmdLine    =16422,%%PROG_DIR%%,%%PROG_1%%
Echo WorkingDir =16422,%%PROG_DIR%%
Echo SubDir =%%PROG_SDIR1%%
Echo InfoTip    =%%PROG_INFO%%
Echo.
Echo [PROG.AddShortcut2] 
Echo Name   =%%SRTC_NAME%%,0x00000001
Echo CmdLine    =16422,%%PROG_DIR%%,%%PROG_1%%
Echo WorkingDir =16422,%%PROG_DIR%%
Echo SubDir =%%PROG_SDIR2%%
Echo InfoTip    =%%PROG_INFO%%
Echo.
Echo [PROG.DelShortcut1]
Echo Name       =%%SRTC_NAME%%,0x00000002
Echo SubDir =%%PROG_SDIR1%%
Echo.
Echo [PROG.DelShortcut2]
Echo Name       =%%SRTC_NAME%%,0x00000003
Echo SubDir =%%PROG_SDIR2%%
Echo.
Echo [Strings]
Echo PROG_DIR   ="utorrent"
Echo PROG_NAME  ="utorrent v.%vrs%"
Echo SRTC_NAME  ="utorrent"
Echo PROG_VERS  ="%vrs%"
Echo PROG_MADE  ="oszone.net"
Echo NAME_INF   ="utorrent"
Echo PROG_1 ="utorrent.exe"
Echo PROG_INFO  ="торрент трекер"
Echo PROG_SDIR1 ="Утилиты")>TempZ\866.txt
Call :_ChCp CP1251 TempZ\unpack\utorrent.inf
 
::пишем QLP.cmd
Echo Создание QLP.cmd...
(Echo ChCp 1251^>Nul
Echo Ver ^| Find "6.1" ^>Nul ^|^| (
Echo Echo PROG_SDIR2="..\..\Application Data\Microsoft\Internet Explorer\Quick Launch"
Echo ^)^>^>%%NameInf%%
Echo Ver ^| Find "6." ^>Nul ^&^& (
Echo Echo PROG_SDIR2    ="..\..\..\..\..\..\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch"
Echo ^)^>^>%%NameInf%%
Echo ChCp 866^>Nul)>TempZ\866.txt
Call :_ChCp CP1251 TempZ\unpack\QLP.cmd
 
:: пишем Win64.cmd
Echo Создание Win64.cmd...
(Echo @echo off
Echo setlocal EnableDelayedExpansion
Echo.
Echo Set xOS=x86^& If Defined PROCESSOR_ARCHITEW6432 ^(Set xOS=x64^) Else If "%%PROCESSOR_ARCHITECTURE%%"=="AMD64" Set xOS=x64
Echo.
Echo set UNINST=utorrent
Echo set filename=utorrent.inf
Echo set $filename=utorrent-1.inf
Echo.
Echo set in=KEY_UNINST  ="Software\Microsoft\Windows\CurrentVersion\Uninstall\%%UNINST%%"
Echo set out=KEY_UNINST ="Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\%%UNINST%%"
Echo.
Echo if "%%xOS%%"=="x64" ^(
Echo    for /f "tokens=1* delims=]" %%%%A in ^(^'find /v /n ^"^" ^^^<^"%%filename%%^"^'^) do ^(
Echo        set line=%%%%B
Echo        if defined line ^(set line=^^!line:16422=16426^^!^)
Echo        if "^!line^!"=="%%in%%" ^(echo %%out%%^>^>%%$filename%%^) else ^(echo^.^^!line^^!^>^>%%$filename%%^)
Echo        ^)
Echo    del /q %%filename%%
Echo    ren "%%$filename%%" "%%filename%%"
Echo    ^>^>%%filename%% echo %%out%% 
Echo    ^) else ^(
Echo    ^>^>%%filename%% echo %%in%% 
Echo ^) 
Echo exit /b)>>TempZ\866.txt
Call :_ChCp CP866 TempZ\unpack\Win64.cmd
 
:: Пишем конфиг для sfx
Echo Создание конфиг для sfx...
(Echo ;^^!@Install@^^!UTF-8^^!
Echo SetEnvironment="Name=utorrent"
Echo SetEnvironment="fVer=%vrs%"
Echo SetEnvironment="NameInf=utorrent.inf"
Echo Title="Установка %%Name%%"
Echo BeginPrompt="Сейчас будет установлен %%Name%% v.%%fVer%% [%%%%P]"
Echo ExtractTitle="Распаковка файлов..."
Echo ExtractDialogText="Придется подождать..."
Echo FinishMessage="%%Name%% v.%%fVer%% ^[%%%%P^] установлен^!"
Echo InstallPath="%%ProgramFiles%%\\%%Name%%"
Echo RunProgram="hidcon:QLP.cmd"
Echo RunProgram="hidcon:Win64.cmd"
Echo RunProgram="fm5:hidcon:cmd /c Move %%NameInf%% %%WINDIR%%\\INF"
Echo RunProgram="rundll32 advpack,LaunchINFSection %%NameInf%%,DefaultInstall,0"
Echo Delete="%%%%T\\QLP.cmd"
Echo Delete="%%%%T\\Win64.cmd"
Echo GUIFlags="2+4+8+16+32+2048+4096"
Echo GUIMode="1"
Echo SfxAuthor="sov44"
ECho ;^^!@InstallEnd@^^!)>TempZ\866.Txt
Call :_ChCp utf8 Tempz\utorrent.txt
 
:: пишем свойства sfx модуля
Echo Редактирование модуля sfx.
 
copy /y "Tools\7zsd_LZMA2.sfx" "TempZ\utorrent.sfx" 1>nul
 
Tools\7zsdrc.exe TempZ\utorrent.sfx ^
-i Tools\Icon_1.ico ^
-pv "%vrs%" ^
-fv "%vrs%" ^
-vs "ProductVersion=3.4.3.4" ^
-vs "Comments=Создание скриншотов, редактирование" ^
-vs "CompanyName=utorrent" ^
-vs "FileDescription=торрент-трекер" ^
-vs "LegalCopyright=" ^
-vs "LegalTrademarks=sov44" ^
-vs "OriginalFilename=utorrent_%vrs%.exe" ^
-vs "ProductName=utorrent"
 
echo Создание SFX...
>nul tools\7z.exe a TempZ\utorrent.7z -m0=LZMA2 -mx=9 -mmt=2 .\TempZ\unpack\*
>nul copy /b TempZ\utorrent.sfx+TempZ\utorrent.txt+TempZ\utorrent.7z "utorrent_%vrs%.exe"
 
Echo.
Echo.
 
set /p adn="Инсталлятор или аддон?  [Enter - инсталлятор, 2 - аддон] " 
if defined adn (
md utorrent\Files\ForceCopy\SVCPACK
move /y "utorrent_%vrs%.exe" "utorrent\Files\ForceCopy\SVCPACK\utorrent.exe" >nul
 
echo.
echo Созданеие файлов аддона:
echo Пишем Run...
(Echo.
Echo utorrent.exe -y -gm2 -fm0)>utorrent\Run
 
echo Пишем Addon.nfo...
(Echo Аддон utorrent
Echo Версия v.%vrs%
Echo Совместим с UpdatePack-XPSP3-Rus
Echo Тип интеграции аддона: SVCPACK
Echo.
Echo Ключ тихой установки: -y -gm2 -fm0
Echo.
Echo by sov44
Echo %Date%)>TempZ\866.txt
Call :_ChCp CP1251 utorrent\Addon.nfo
 
echo Пакуем аддон...
tools\7z.exe a utorrent_%Vrs%_addon.7z -m0=LZMA2 -mx=9 -mmt=2 utorrent>nul
 
echo Создание аддона завершено^^!
) else echo.& echo.& echo Создание utorrent_%vrs%.exe завершено^^!
 
Echo.
Echo Для удаления временных файлов и выхода нажмите любую клавишу.
pause>nul
Echo.
 
:_DelTemp
rd /s /q TempZ >nul
rd /s /q utorrent 2>nul 1>&2
 
::if exist TempZ GoTo :_DelTemp
::GoTo :EOF
endlocal
exit /b
 
:: конвертер текстовых файлов
:_ChCp
tools\win_iconv.exe -f CP866 -t %~1 TempZ\866.txt >"%~2"
Del /Q/F TempZ\866.txt 2>Nul
GoTo :EOF

при создании конструктора использовались сторонние утилиты
- 7z.exe (архиватор Игоря Павлова http://www.7-zip.org)
- 7zsd_LZMA2.sfx (модифицированный модуль 7-zip Олега Щербакова http://7zsfx.info/ru)
- 7zsdrc.exe (утилита для правки правки свойств модифицированного модуля Олега Щербакова)
- filever.exe (утилита Microsoft для вывода в консоль свойств файла https://support.microsoft.com/ru-ru/kb/913111)
- wget.exe (утилита для скачивания файлов с сайтов http://gnuwin32.sourceforge.net/packages/wget.htm)
- win_iconv (утилита для смены кодировки текстовых файлов https://github.com/win-iconv/win-iconv#svn%2Ftags%2F0.0.6)
2
Вложения
Тип файла: 7z uTorrent_my.7z (865.2 Кб, 12 просмотров)
sov44
1758 / 742 / 128
Регистрация: 09.04.2011
Сообщений: 1,313
15.01.2016, 23:52 49
DevxExec.exe распространяется по лицензии Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License (Бесплатно для некоммерческого использования при соблюдении условий лицензии).

При обычном запуске DevxExec.exe покажет параметры командной строки, которыми можно воспользоваться для элевации прав.
3
Вложения
Тип файла: 7z devxexec.7z (41.0 Кб, 17 просмотров)
sov44
1758 / 742 / 128
Регистрация: 09.04.2011
Сообщений: 1,313
16.01.2016, 00:02 50
Модификация RunAsTrustedInstaller от jameszero (oszone), добавляющая в контекстном меню EXE и CMD-файлов при зажатом Shift пункты «Запуск от имени SYSTEM» и «Запуск от имени TrustedInstaller»
4
Вложения
Тип файла: zip RunAsTrustedInstaller.zip (49.5 Кб, 36 просмотров)
БлагоЯр
Кто, кроме нас
6 / 6 / 1
Регистрация: 28.05.2014
Сообщений: 57
11.03.2017, 14:02 51
Цитата Сообщение от sov44 Посмотреть сообщение
Модификация RunAsTrustedInstaller от jameszero (oszone), добавляющая в контекстном меню EXE и CMD-файлов при зажатом Shift пункты «Запуск от имени SYSTEM» и «Запуск от имени TrustedInstaller»
А удалить?
0
Dragokas
Эксперт WindowsАвтор FAQ
17008 / 7064 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
11.03.2017, 14:58  [ТС] 52
БлагоЯр, попробуйте через ShellMenuView by Nir Sofer. P.S. Эта тема не для обсуждений.

Кстати, выложу свой форк утилиты Дмитрия Старикова.

TrustedShell Fork (by Dragokas)

Для запуска программ от имени Local System.

Использование:
1) распаковать
2) просто перетащите иконку нужной для запуска программы на иконку tshell.exe

Если запустить tshell.exe просто так, запустится командная строка cmd.exe

Отличие от оригинала: Более удобный запуск программ (см. использование); из неё удалён фикс реестра. И VT детекты по нулям.
Исходник на AutoIt в комплекте.
2
Вложения
Тип файла: zip Trusted_Shell.zip (530.9 Кб, 13 просмотров)
volodin661
1803 / 862 / 148
Регистрация: 10.12.2013
Сообщений: 2,969
24.03.2017, 17:07 53
в ссылках ниже информация о GOW и Cash

( Gow (Gnu On Windows) is the lightweight alternative to Cygwin)
( Cash - это кроссплатформенная реализация командной оболочки Linux на JavaScript [ Node.js ] )

https://github.com/bmatzelle/gow/wiki
https://losst.ru/kak-vypolnit-linux-komandu-iz-windows
1
volodin661
1803 / 862 / 148
Регистрация: 10.12.2013
Сообщений: 2,969
23.09.2017, 02:03 54
VIM. Астролябия
( Текстовый редактор. Инструмент. Непростой. Знаменитый. Окно в другой мир. Установите и приготовьте все 10 пальцев )

К обеду астролябия была продана интеллигентному слесарю за три рубля.

— Сама меряет, — сказал молодой человек, передавая астролябию покупателю, — было бы что мерять.
Вступление.

Команд в командном интерпретаторе cmd крайне мало;
язык интерпретатора ( хотя назвать этот язык языком язык не поворачивается ) примитивен и другим уже не будет никогда;
консольных утилит в Windows тоже крайне мало, качество их и возможности ниже всякой критики.

Текстовый редактор VIM, обладая командным режимом, собственным языком и крепкой
центральной нервной системой поможет улучшить эту безрадостную картину в части обработки текстовой информации -
это уж как минимум.
( нервная система VIM настолько крепка, что расшатать нервную систему неподготовленного юзера сможет
за каких-то 3-4 минуты )

Введение

Начну с небольших примеров, которые нахожу здесь же на ветке cmd/bat.

Удаление переносов строк

Решение
это содержимое cmd-файла:
Windows Batch file
1
2
@echo off
<file.txt>new.txt (for /f %%a in ('more') do @<nul set/p="%%a ")
а это вызов VIM с соответств. параметрами. файл тут не нужен:
Windows Batch file
1
vim +%j +%x file.txt
Удалить предыдущую строку

Решение
это содержимое cmd-файла:
Windows Batch file
1
2
3
4
5
6
@echo off
set "f=1.txt"
set "si=set VER=1.10.50"
<"%f%" (for /f "delims=[]" %%a in ('find/n "%si%"') do @set/a n=%%a-1)
<"%f%">$ (for /f "delims=" %%a in ('find /n /v ""') do @set "s=%%a"& echo "%%a"|>nul find /v "[%n%]" && cmd/v/c echo[!s:*]^^=!)& move $ "%f%"
exit
а это вызов VIM с соответств. параметрами. файл тут не нужен:
Windows Batch file
1
vim +"/set VER=/-1d" +x 1.txt
Поменять кодировку всех текстовых файлов в папке

Решение

это содержимое cmd-файла:
Windows Batch file
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
@set @x=0; /*
@echo off & cls
setlocal EnableExtensions  
set "SRCDIR="
set /p "SRCDIR=folder with *.log file>"
if NOT defined SRCDIR (echo:folder not set&pause&exit /b 1)
if "%SRCDIR:~-1%" == "\" set "SRCDIR=%SRCDIR:~0,-1%"
if NOT exist "%SRCDIR%" (echo:folder '%SRCDIR%' not found&pause&exit /b 2)
if NOT exist "%SRCDIR%\*.log" (echo:*.log not found in '%SRCDIR%'&pause&exit /b 3)
for /f %%v in ('dir /b "%SRCDIR%\*.log"') do (
  >nul 2>nul del "%temp%\%%v"
  call :recode "%SRCDIR%\%%~v" "%temp%\%%v" windows-1251 cp866
  if exist "%temp%\%%v" >nul move /y "%temp%\%%v" "%SRCDIR%"
)
exit /b 0
 
:Recode in.[исходный файл] in.[результирующий файл] in.[кодировка исходного файла] in.[кодировка результирующего файла]
  cscript.exe //nologo //e:jscript "%~f0" "%~1" "%~2" "%~3" "%~4"
exit /b
 
*/with (new ActiveXObject('ADODB.Stream')) {
  Charset = WScript.Arguments(2);
  Open();
  LoadFromFile (WScript.Arguments(0));
  Text = ReadText();
  Close();
  Charset = WScript.Arguments(3);
  Open();
  WriteText (Text);
  SaveToFile (WScript.Arguments(1), 2);
  Close();
}
вызов VIM с соответств. параметрами. файл тут не нужен:
(перекодировать все .txt файлы в подкаталоге testdir)
Windows Batch file
1
vim +"bufdo write ++enc=cp866" +q testdir\*.txt
( продолжение следует )
4
volodin661
1803 / 862 / 148
Регистрация: 10.12.2013
Сообщений: 2,969
30.11.2017, 00:06 55
VIM. Астролябия ( продолжение )

Чтение предпоследней строки

это cmd-решение
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
 
<"1.txt" (
for /f %%i in ('find/c /v ""') do (
 set/a n=%%i-1& for /f "delims=" %%j in ('find/n /v ""^| call findstr/bl [%%n%%]') do (
  set x=%%j& call set "x=%%x:*]=%%"& call set "per=10.30.50.%%x:~,2%%.%%x:~2%%"
 )
)
)
 
if defined per cmd/v/c echo.!per!
 
pause>nul
а это команда vim: $-1
если оформить как ком. строку, то:
Windows Batch file
1
vim -es +$-1p +q file.txt
1
greg zakharov
Покинул форум
1954 / 827 / 239
Регистрация: 07.05.2015
Сообщений: 1,659
24.01.2018, 22:50 56
SQLite в командных сценариях
Какая-то странная неприязнь наблюдается у разработчиков командных сценариев в отношении сторонних утилит. Толи им невдомек, что сама по себе командная оболочка, убери все CUI приложения из переменной окруженя PATH, толком мало что может, толи им просто доставляет некое мазохистское удовольствие писать портянки, - здесь явно без бутылки, а то и двух, не разобраться. Между тем существует несколько по-настоящему полезных вещей из мира потустороннего софта - curl, vim, tcl и т.д., - в значительной мере упрощающих жизнь как системным администраторам, так и простым пользователям, в плане автоматизации рутинной работы. Минус упомянутых (и иже с ними) утилит в том, что для получения их акуальных версий приходится все собирать из исходников самостоятельно, но это уже далеко от основной темы. А вот бонус, получаемый от использования оных утилит довольно значительный. Доказательство тому можно привести на примерах менее всего очевидного - SQLite. Людям с расстроеной психикой, а также неовершеннолетним детям, беременным женщина и всем проходящим период лактации, просьба дальше не читать, ибо батхарт вызванный примерами ниже может вполне послужить поводом к загрязнению эфира форума и причиной вооруженного конфликта. В общем, все были пердуперждены.
Начать стоит с простых примеров.

Подсчет количества строк в текстовом файле
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
; @temp /* 2>nul
@echo off
  echo:La-la-la, zhu-zhu-zhu
  echo:SQLite wam pokazhu...
  2>nul sqlite3 < "%~f0"
exit /b
*/
CREATE TEMP TABLE t(txt);
.import file.ext t
SELECT COUNT(*)+1 FROM t;
DROP TABLE t;
Пример, надо сказать, притянутый за уши, так как можно для посчета строк в текстовике обойтись штатным функционалом вроде:
Windows Batch file
1
find /v /c "" < file.ext
Здесь же пример приводится для разъяснения принципов встраивания SQL запросов к файлам как к БД.
Первая строка - обоюдная заглушка cmd и терминала SQLite. Слово "temp" в SQLite является ключевым, а потому первую строку он интерпретирует примерно так: пустая команда, за которой идет попытка вызвать ключевое слово в качестве команды, многострочный комментарий и валидный SQL запрос. Всю брань, выдаваемую при этом терминалом SQLite, скрывает конструкция 2>nul.

Вывод первых\последних 10-ти строк файла
Windows Batch file
1
2
3
4
5
6
7
8
9
; @test /* 2>nul
@echo off
  2>nul sqlite3 < "%~f0"
exit /b
*/
CREATE TEMP TABLE t(txt);
.import file t
SELECT * FROM t LIMIT 10;
DROP TABLE t;
Ну и для закрепления, стоит подправить запрос как:
SQL
1
2
-- SELECT *FROM t LIMIT 10;
SELECT * FROM t LIMIT (SELECT COUNT(*) - 10 FROM t), 10;
Чтобы получить последние 10 строк файла.

Реверс строки
Вот, уже вплотную приблизились к занимательным вещам. Вы когда-нибудь на голом SQL делали реверс строк?
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
  setlocal
    if /i "%~1" equ "" echo:No string.&goto:eof
    set "s=%~1"
    set "sql=WITH rev(i, c) AS (VALUES(-1, '') UNION ALL"
    set "sql=%sql% SELECT i - 1, SUBSTR('%s%', i, 1) AS r"
    set "sql=%sql% FROM rev WHERE r != '') SELECT"
    set "sql=%sql% group_concat(c, '') AS strrev FROM rev;"
    sqlite3 "%~f0" "%sql%"
  endlocal
exit /b
Пока все это стараетесь переварить, приведу пример использования:
Код
E:\sources> reverse.cmd "gnirts tset"
Конвертирование UNIX времени в локалььное
Проще всего это продемонстрировать на примере значения реестра InstallDate.
Windows Batch file
1
2
3
4
5
6
7
@echo off
  setlocal
    set key="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
    for /f "tokens=3" %%i in ('reg query %key% /v InstallDate') do 2>nul set /a "dt=%%i"
    sqlite3 "%~f0" "SELECT DATETIME(%dt%, 'unixepoch', 'localtime');"
  endlocal
exit /b
Согласитесь, код выглядит многим опрятнее, нежели спагетти из set /a чего-то там.

FILETIME в локальное время
Вообще, SQLite можно использовать в командных сценариях для достаточно сложных математических вычислений, а если подтянуть расширение вроде mathex, то в распоряжение еще получим и кучу всего интересного вроде логарифмов. Код ниже - пример таких вычислений силами cmd и терминала SQLite безо всяких расширений.
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
  setlocal enabledelayedexpansion
    set "key=HKLM\SYSTEM\CurrentControlSet\Control\Windows"
    for /f "tokens=3" %%i in ('reg query %key% /v ShutdownTime') do set "ft=%%i"
    for /l %%i in (16, -2, 0) do set "r=!r!!ft:~%%i,2!"
    set "sql=SELECT DATETIME((CAST(0x!r! AS INTEGER) - 116444736 * 1e9) / 1e7, 'unixepoch', 'localtime');"
    sqlite3 "%~f0" "%sql%"
  endlocal
exit /b
На этом, понятное дело, возможности SQLite вкупе с cmd не исчерпываются. Можно, например, парсить JSON (при условии, что SQLite собран с поддержкой оного или располагает соответствующим расширением), преобразовывать CSV, вычислять хэши и энтропию строк и т.д. Здесь же приведены примеры того, как к этому всему можно подступиться.
2
greg zakharov
Покинул форум
1954 / 827 / 239
Регистрация: 07.05.2015
Сообщений: 1,659
02.02.2018, 21:31 57
Debugging Tools для консольщика
Хотелось бы написать достаточно обширный пост на тему отладчика WinDbg и иже с ним, входящим в обозначенный в заглавии пакет отладочных инструментов, но этого не будет лишь по причине обширности темы и наличию неплохой техдокументации в составе пакета; здесь же будет обзор всего лишь пары-тройки утилит из набора, способных заинтересовать бывалых (и не очень) консольщиков. Справедливости ради стоит заметить, что Debugging Tools лично мной на протяжении последних нескольких лет используется не только описанным ниже способом, но также и по своему непосредственному назначению - отладке.
Начнем, пожалуй, с утилиты tlist, выводящей список процессов, а если указать ключ -t вместо списка получим древовидное представление этих процессов, что, согласитесь, порой многим удобней, нежели просто список (как все в том же tasklist). Другой полезной вещью является ключ -m, выводящей имена процессов, использующие одну и ту же DLL, например, tlist -m kernel32.dll. Больше возможностей - tlist /?.

Не по теме:

В составе набора Debugging Tools имеется утилита kill, призванная завершать процессы, но в большинстве случаев она справляется с возложенными на нее обязанностями из рук вон плохо, а потому ее использование не столь целесообразно. Объясняетя это анахроничностью кода утилиты, написанный еще в эпоху 9х систем и не менявшийся годами.


Другой полезной штукой можно назвать утииту list, позволяющую просматривать и править бинарные файлы в raw и hex режимах. Пример работы утилиты:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
D:\bin> list test.exe
rem чтобы вывести справку по командам - Shift+?
rem Esc - отмена\выход
rem латинская "H" чтобы перейти в hex-режим
     Edit: test.exe                     Position: 0000000000000000
     Size: 0000000000002C00 (11,264)
 00000000  4D 5A 90 00 03 00 00 00-04 00 00 00 FF FF 00 00  *MZ..............*
 00000010  B8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00  *........@.......*
 00000020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  *................*
 00000030  00 00 00 00 00 00 00 00-00 00 00 00 F8 00 00 00  *................*
 ...
Это, конечно, не крутой hiew (а он действительно очень крут), но с учетом ценовой политики последнего это лучше, чем ничего.
Ну и последнее в обзоре (почему вообще стоит консольщикам взять Debugging Tools на вооружение). Это декодер ошибок, возвращаемых виндовыми приложениями (имеется в виду WinAPI), например, 1 - неверная функция, 2 - не удается найти указанный файл, и т.д. Microsoft, помнится, выпускала справочник [MS-ERREF].pdf, в котором дается описание тех же ошибок, но что удобней: лезть всякий раз в справочник или набрать в консоли "err код_ошибки"? По мне так последнее, тем паче что cdb - а речь сейчас о нем, - позволяет читать описание не только Win32 ошибок, но NTSTATUS'ов. Как оно работает? Если путь до Debugging Tools находится в переменной %PATH%:
Windows Batch file
1
2
3
4
5
6
D:\bin> doskey err=chcp 1251>nul & cdb -z %comspec% -c ".locale .1251;!error $1;q" | findstr /birc:"err" & chcp 866>nul
D:\bin> err F
Error code: (Win32) 0xf (15) - Системе не удается найти указанный диск.
 
D:\bin> err C0000023
Error code: (NTSTATUS) 0xc0000023 (3221225507) - {Буфер слишком мал}  Размер буфера слишком мал для размещения данных. Данные в буфер не записаны.
Иными словами, передаете в качестве параметра макросу код ошибки в шестнадцатиричном виде и получаете ответ.
При правильных настройках и внимательном чтении документации можно нарисовать с десяток-другой прочих макросов, способных дампить заголовки PE'шников, конвертировать числа в различные системы счисления, диагностировать различные параметры системы, словом, много чего.
2
greg zakharov
Покинул форум
1954 / 827 / 239
Регистрация: 07.05.2015
Сообщений: 1,659
04.02.2018, 21:12 58
sed для Windows (или Windows для sed)
Наверное, стоит сказать Михаилу Буйлову за то, что нашел пусть и не самый легкий, но все же способ сборки sed'а под Windows на MSVC, что открывает новые перспективы для консольщиков Windows, так как представленный Михаилом способ на выходе дает единственный бинарник без привязки к каким-либо библиотекам, за исключением библиотек исполнения Microsoft. Для тех, кому влом собирать все иp исходников самостоятельно, по ссылке выше могут найти готовые сборки в том числе и для Windows XP.
Что позволяет делать sed в cmd? По большей части все то же, что и в bash, но есть и приятные бонусы, в частности в некоторых случаях можно не использовать for. Например:
Windows Batch file
1
wmic os get osarchitecture /value | sed -nr "s/([^0-9]+([0-9]+)){1}.+/\2/p" | cmd /v/c "(set /p bit= &if !bit! equ 64 (setup_x64.exe) else (setup_x86.exe))"
Не извращаться с написанием сложноподчиненных конструкций, скажем, исключительно для того, чтобы вывести последню строку файла:
Windows Batch file
1
sed "$!d" file.txt
Или несколько последних строк:
Windows Batch file
1
sed -e :a -e "$q;N;11,$D;ba" file.txt
Вообще, sed способен заменить собой с десяток [Lin]UN(i)?X'овых утилит: tr, cut, cat и т.д. Так что, возьмите sed на карандаш.
1
Dragokas
Эксперт WindowsАвтор FAQ
17008 / 7064 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
09.10.2018, 18:06  [ТС] 59
Программа получения сканкодов клавиш.

Вывод имён файлов каталога в виде списка, способ представления которого определяется выбором пользователя
0
09.10.2018, 18:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2018, 18:06

Ключи запуска программы!
Здравствуйте у меня вопрос: 1. Как программе передать ключи через которую она...

Ключи запуска svchost
Уважаемые программисты думаю ответ на этот вопрос вам будет не сложен, а мне вы...

Ключи запуска программы на яве
Привет уважаемые программисты. Некоторая программа(на жабе) устанавливает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru