Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8

Команда for не выдает результат, так как нет элементов набора. Как проверить и подменить значение?

29.11.2018, 20:12. Показов 2840. Ответов 15

Студворк — интернет-сервис помощи студентам
Всем привет. Нужна помощь с программкой.
Код таков:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@Echo Off 
For /F "tokens=1" %%a In ('C:\zabbix\smartmontools64\bin\smartctl.exe --scan')^
Do For /F "tokens=2 delims=:" %%z In ('C:\zabbix\smartmontools64\bin\smartctl.exe -i %%a ^| find "Model Family"')^
Do For /F "tokens=* delims= " %%b In ('echo %%z')^
Do For /F "tokens=2 delims=:" %%x In ('C:\zabbix\smartmontools64\bin\smartctl.exe -i %%a ^| find "Device Model"')^
Do For /F "tokens=* delims= " %%c In ('echo %%x')^
Do For /F "tokens=3" %%d In ('C:\zabbix\smartmontools64\bin\smartctl.exe -i %%a ^| find "Serial Number"')^
Do For /F "tokens=3" %%e In ('C:\zabbix\smartmontools64\bin\smartctl.exe -i %%a ^| find "Form Factor"')^
Do For /F "tokens=2 delims=][" %%f In ('C:\zabbix\smartmontools64\bin\smartctl.exe -i %%a ^| find "User Capacity"')^
Do Echo HDD_NAME:"%%a", HDD_VENDOR:"%%b", HDD_MODEL:"%%c", HDD_SERIAL:"%%d", HDD_TYPE:%%e", HDD_SIZE:"%%f"
Результат выполнения в моем случае следующий:
Code
1
2
HDD_NAME:"/dev/sda", HDD_VENDOR:"Seagate Barracuda 7200.14 (AF)", HDD_MODEL:"ST1000DM003-1ER162", HDD_SERIAL:"Z4Y1S7B6", HDD_TYPE:3.5", HDD_SIZE:"1,00 TB"
HDD_NAME:"/dev/sdb", HDD_VENDOR:"Seagate Desktop HDD.15", HDD_MODEL:"ST4000DM000-1F2168", HDD_SERIAL:"Z300D821", HDD_TYPE:3.5", HDD_SIZE:"4,00 TB"
smartmontools64 - это консольная утилита, выводящая информацию о жестких дисках.
Код выполняет поиск дисков на компьютере, затем выводит необходимые параметры для каждого диска. В принципе работает все нормально.
Но есть нюанс. На моем компьютере подключено 3 жестких диска, и 3-й (/dev/sdc) подключен через внешний корпус в USB. И видимо из-за этого он не выводит параметр "Form Factor".

Пример для /dev/sda :
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# C:\zabbix\smartmontools64\bin\smartctl.exe -i /dev/sda
smartctl 6.5 2016-05-07 r4318 [x86_64-w64-mingw32-win7-sp1] (sf-6.5-1)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
 
=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST1000DM003-1ER162
Serial Number:    Z4Y1S7B6
LU WWN Device Id: 5 000c50 079392124
Firmware Version: CC43
User Capacity:    1*000*204*886*016 bytes [1,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Thu Nov 29 20:00:46 2018 RTZ
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Пример для /dev/sdc :
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# C:\zabbix\smartmontools64\bin\smartctl.exe -i /dev/sdc
smartctl 6.5 2016-05-07 r4318 [x86_64-w64-mingw32-win7-sp1] (sf-6.5-1)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
 
=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Black
Device Model:     WDC WD5000BPKX-00HPJT0
Serial Number:    WD-WX41AC3K4300
LU WWN Device Id: 5 0014ee 6598db8db
Firmware Version: 01.01A01
User Capacity:    500*107*862*016 bytes [500 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Nov 29 20:01:58 2018 RTZ
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
У цикла отсутствуют элементы набора, и команда не выполняется вовсе, как и те предыдущие, в которые вложен этот цикл. В результате для этого диска не выводится ничего.

Необходимо подменить результат выполнения цикла каким либо текстом ("none" или "not supported", это не важно), если он получается пустым.
Надеюсь на Ваши предложенные идеи и помощь.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2018, 20:12
Ответы с готовыми решениями:

Как проверить записи из набора на значение null?
Через odbcconnection подключаюсь к базе, с помощью odbccommand.executereader() получаю набор данных. Далее чтение данных построчно в цикле....

Sqlite, как проверить есть ли результат и какое значение
Извиняюсь если вопрос глупый, делаю запрос по одному из полей таблицы. На выходе должен получить поле id, или ничего (то есть, записи с...

Для каждой строки из заданного набора S проверить: верно ли, что она содержит как подстроку одну из строк из набора T
Здравствуйте, уважаемые пользователи! Опять несложная задачка на строки, но не все тесты пройдены...Буду благодарен всем, кто может помочь....

15
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
29.11.2018, 20:22
Windows Batch file
1
2
3
4
5
6
... if "%%a"=="" (
 echo "none" или "not supported", это не важно
) else (
 все что было раньше без этой добавки
)
...
0
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8
29.11.2018, 21:00  [ТС]
Да, это в принципе работает, если допустим запрашивать один параметр с конкретного диска. Но к сожалению я не знаю как встроить это в цикле. В таком виде
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
set name=nodata
set model=nodata
For /F "tokens=1" %%a In ('C:\zabbix\smartmontools64\bin\smartctl.exe --scan')^
Do set name=%%a & For /F "tokens=*" %%e In ('C:\zabbix\smartmontools64\bin\smartctl.exe -i %%a ^| find "Form Factor"')^
Do if "%%e"=="" (
 set model=none
 ) else (
 set model=%%e
)
echo name:%name% model:%model%
данные выводятся только для последнего диска, причем не совсем верные, так как подцепляются значения переменной из предыдущих команд в цикле.
Code
1
name:/dev/sdc  model:Form Factor:      3.5 inches
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
30.11.2018, 15:29
какая из переменных не определяется?

вот ваш переделанный код
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
set "pgr=C:\zabbix\smartmontools64\bin\smartctl.exe"
 
for /f %%a in ('%prg% --scan') do set "HDD_NAME=%%a"
for /f "tokens=2 delims=:" %%a in ('%prg% -i %HDD_NAME% ^| find "Model Family"') do set "v1=%%a"
for /f "delims=" %%a in ('echo %v1%') do set "HDD_VENDOR=%%a"
for /f "tokens=2 delims=:" %%a in ('%prg% -i %HDD_NAME% ^| find "Device Model"') do set "v2=%%a"
for /f "delims=" %%a in ('echo %v2%') do set "HDD_MODEL=%%a"
for /f "tokens=3" %%a in ('%prg% -i %HDD_NAME% ^| find "Serial Number"') do set "HDD_SERIAL=%%a"
for /f "tokens=3" %%a in ('%prg% -i %HDD_NAME% ^| find "Form Factor"') do set "HDD_TYPE=%%a"
for /f "tokens=2 delims=[]" %%a in ('%prg% -i %HDD_NAME% ^| find "User Capacity"') do set "HDD_SIZE=%%a"
echo HDD_NAME:"%HDD_NAME", HDD_VENDOR:"%HDD_VENDOR%", HDD_MODEL:"%HDD_MODEL%", HDD_SERIAL:"%HDD_SERIAL%", HDD_TYPE:%HDD_TYPE%", HDD_SIZE:"%HDD_SIZE%"
 
pause
1
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8
30.11.2018, 18:07  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
какая из переменных не определяется?

вот ваш переделанный код
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
set "pgr=C:\zabbix\smartmontools64\bin\smartctl.exe"
 
for /f %%a in ('%prg% --scan') do set "HDD_NAME=%%a"
for /f "tokens=2 delims=:" %%a in ('%prg% -i %HDD_NAME% ^| find "Model Family"') do set "v1=%%a"
for /f "delims=" %%a in ('echo %v1%') do set "HDD_VENDOR=%%a"
for /f "tokens=2 delims=:" %%a in ('%prg% -i %HDD_NAME% ^| find "Device Model"') do set "v2=%%a"
for /f "delims=" %%a in ('echo %v2%') do set "HDD_MODEL=%%a"
for /f "tokens=3" %%a in ('%prg% -i %HDD_NAME% ^| find "Serial Number"') do set "HDD_SERIAL=%%a"
for /f "tokens=3" %%a in ('%prg% -i %HDD_NAME% ^| find "Form Factor"') do set "HDD_TYPE=%%a"
for /f "tokens=2 delims=[]" %%a in ('%prg% -i %HDD_NAME% ^| find "User Capacity"') do set "HDD_SIZE=%%a"
echo HDD_NAME:"%HDD_NAME", HDD_VENDOR:"%HDD_VENDOR%", HDD_MODEL:"%HDD_MODEL%", HDD_SERIAL:"%HDD_SERIAL%", HDD_TYPE:%HDD_TYPE%", HDD_SIZE:"%HDD_SIZE%"
 
pause
Да, спасибо, код стал по приятней, но все же он не работает как надо.
Тут каждый цикл выполняется отдельно. В первом for присваивается имя последнего найденного диска в цикле, а далее отображаются для него параметры, и только для него одного.
У меня в коде программы идут последовательно вложенные циклы, поэтому результат выводится для каждого найденого диска, но проблема возникает с пустыми значениями.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
30.11.2018, 20:20
вот для каждого и с выводом в файл:
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
@echo off
set "prg=C:\zabbix\smartmontools64\bin\smartctl.exe"
 
for /f %%a in ('""%prg%" --scan"') do set /a n+=1& call :# "%%a" "%%n%%"
pause& exit
 
:#
 set "HDD_NAME=%~1"
 for /f "tokens=2*" %%a in ('""%prg%" -i %~1|find "Model Family""') do set "HDD_VENDOR=%%b"
 for /f "tokens=2*" %%a in ('""%prg%" -i %~1|find "Device Model""') do set "HDD_MODEL=%%b"
 for /f "tokens=2*" %%a in ('""%prg%" -i %~1|find "Serial Number""') do set "HDD_SERIAL=%%b"
 for /f "tokens=2*" %%a in ('""%prg%" -i %~1|find "Form Factor""') do set "HDD_TYPE=%%b"
 for /f "tokens=2 delims=[]" %%a in ('""%prg%" -i %~1|find "User Capacity""') do set "HDD_SIZE=%%a"
 
 >%~2.txt (
  @if not "%HDD_NAME%"=="" (echo HDD_NAME:"%HDD_NAME%") else (echo HDD_NAME:"No param")
  @if not "%HDD_VENDOR%"=="" (echo HDD_VENDOR:"%HDD_VENDOR%") else (echo HDD_VENDOR:"No param")
  @if not "%HDD_MODEL%"=="" (echo HDD_MODEL:"%HDD_MODEL%") else (echo HDD_MODEL:"No param")
  @if not "%HDD_SERIAL%"=="" (echo HDD_SERIAL:"%HDD_SERIAL%") else (echo HDD_SERIAL:"No param")
  @if not "%HDD_TYPE%"=="" (echo HDD_TYPE:"%HDD_TYPE%") else (echo HDD_TYPE:"No param")
  @if not "%HDD_SIZE%"=="" (echo HDD_SIZE:"%HDD_SIZE%") else (echo HDD_SIZE:"No param")
 )
exit /b
0
 Аватар для volodin661
6686 / 2278 / 347
Регистрация: 10.12.2013
Сообщений: 7,872
01.12.2018, 12:07
выкинуть отсюда https://github.com/snd3r/GetDi... martUI.ps1 окошки
и останется нормальное решение под powershell, как оно и должно быть в 18-ом году 21-го века.
0
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8
10.12.2018, 17:57  [ТС]
Повозившись, собрал так:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set "prg=C:\zabbix\smartmontools64\bin\smartctl.exe"
for /f %%a in ('%prg% --scan') do (
echo HDD_NAME:%%a
for /f "tokens=2 delims=:" %%z in ('%prg% -i %%a ^| find "Model Family"') do for /F "tokens=* delims= " %%b In ('echo %%z') do echo HDD_VENDOR:%%b
for /f "tokens=2 delims=:" %%y in ('%prg% -i %%a ^| find "Device Model"') do for /F "tokens=* delims= " %%c In ('echo %%y') do echo HDD_MODEL:%%c
for /f "tokens=2 delims=:" %%x in ('%prg% -i %%a ^| find "Form Factor"') do for /F "tokens=* delims= " %%f In ('echo %%x') do (
if %%f=="" (echo nodata) else (echo HDD_TYPE:%%f)
)
for /f "tokens=3" %%d in ('%prg% -i %%a ^| find "Serial Number"') do echo HDD_SERIAL:s/n:%%d
for /f "tokens=2 delims=[]" %%e in ('%prg% -i %%a ^| find "User Capacity"') do echo HDD_SIZE:%%e
echo - - -
)
Вывод
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HDD_NAME:/dev/sda
HDD_VENDOR:Seagate Barracuda 7200.14 (AF)
HDD_MODEL:ST1000DM003-1ER162
HDD_TYPE:3.5 inches
HDD_SERIAL:s/n:Z4Y1S7B6
HDD_SIZE:1,00 TB
- - -
HDD_NAME:/dev/sdb
HDD_VENDOR:Seagate Desktop HDD.15
HDD_MODEL:ST4000DM000-1F2168
HDD_TYPE:3.5 inches
HDD_SERIAL:s/n:Z300D821
HDD_SIZE:4,00 TB
- - -
HDD_NAME:/dev/sdc
HDD_VENDOR:Western Digital Black
HDD_MODEL:WDC WD5000BPKX-00HPJT0
HDD_SERIAL:s/n:WD-WX41AC3K4300
HDD_SIZE:500 GB 
- - -
но положительное условие в if почему то не отрабатывает - в последнем не выводится строка nodata
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.12.2018, 22:06
Цитата Сообщение от ODoyle Посмотреть сообщение
if %%f==""
правильно:
Windows Batch file
1
if "%%f"=="" (...)
1
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8
11.12.2018, 16:44  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
правильно:
Windows Batch file
1
if "%%f"=="" (...)
Спасибо, замечание важное, но на результат не повлияло.
А повлияло вот что - добавил Setlocal EnableDelayedExpansion и использовал ! ! вместо % % для вывода.
Код:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
Setlocal EnableDelayedExpansion
set "prg=C:\zabbix\smartmontools64\bin\smartctl.exe"
for /f %%a in ('%prg% --scan') do (
echo HDD_NAME:%%a
set "hddtype=no data"
for /f "tokens=2 delims=:" %%z in ('%prg% -i %%a ^| find "Model Family"') do for /F "tokens=* delims= " %%b In ('echo %%z') do echo HDD_VENDOR:%%b
for /f "tokens=2 delims=:" %%y in ('%prg% -i %%a ^| find "Device Model"') do for /F "tokens=* delims= " %%c In ('echo %%y') do echo HDD_MODEL:%%c
for /f "tokens=2 delims=:" %%x in ('%prg% -i %%a ^| find "Form Factor"') do for /F "tokens=* delims= " %%f In ('echo %%x') do (
set "hddtype=%%f"
if not "%hddtype%"=="" (set "hddtype=%%f")
)
echo HDD_TYPE:!hddtype!
for /f "tokens=3" %%d in ('%prg% -i %%a ^| find "Serial Number"') do echo HDD_SERIAL:s/n:%%d
for /f "tokens=2 delims=[]" %%e in ('%prg% -i %%a ^| find "User Capacity"') do echo HDD_SIZE:%%e
echo - - -
)
Результат:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
HDD_NAME:/dev/sda
HDD_VENDOR:Seagate Barracuda 7200.14 (AF)
HDD_MODEL:ST1000DM003-1ER162
HDD_TYPE:3.5 inches
HDD_SERIAL:s/n:Z4Y1S7B6
HDD_SIZE:1,00 TB
- - -
HDD_NAME:/dev/sdb
HDD_VENDOR:Seagate Desktop HDD.15
HDD_MODEL:ST4000DM000-1F2168
HDD_TYPE:3.5 inches
HDD_SERIAL:s/n:Z300D821
HDD_SIZE:4,00 TB
- - -
HDD_NAME:/dev/sdc
HDD_VENDOR:Western Digital Black
HDD_MODEL:WDC WD5000BPKX-00HPJT0
HDD_TYPE:no data
HDD_SERIAL:s/n:WD-WX41AC3K4300
HDD_SIZE:500 GB
- - -
Странно, но для простейшего цикла типа:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "text1=text1"
set "text2=text2"
set "text3=text99"
echo %text1%
echo %text2%
echo -
for %%i in (*) do set "text2=%text3%"
echo %text1%
echo %text2%
все прекрасно работает без ухищрений.

Всем большое спасибо за помощь. Результат получен.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
11.12.2018, 18:06
Цитата Сообщение от ODoyle Посмотреть сообщение
все прекрасно работает без ухищрений
правильно, только последний вывод для переменной text2
я вам в п6 привел как правильно и наглядно сделать вывод всех итераций, но вы решили опять лепить forы в спагетти - это уже дело ваше.


Добавлено через 2 минуты
Цитата Сообщение от ODoyle Посмотреть сообщение
for %%i in (*) do
а что собственно вы вообще тут перебираете и смысл тогда в переменной %%i, поэтому она и не используется.
0
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8
11.12.2018, 18:21  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
я вам в п6 привел как правильно и наглядно сделать вывод всех итераций, но вы решили опять лепить forы в спагетти - это уже дело ваше.
Дело в том, что в файл мне как раз выводить не надо, но это не основная проблема. Программа у меня выводила для 3-его диска параметр HDD_TYPE, которого у диска нет вообще, ну и присваивала ему значение, видимо беря его из предыдущих вычислений
Цитата Сообщение от alpap Посмотреть сообщение
а что собственно вы вообще тут перебираете и смысл тогда в переменной %%i, поэтому она и не используется.
В теории переменная в цикле или в условии при присвоении не сохраняет значение. Как например описано тут, в самом конце: https://ab57.ru/cmdlist/set.html
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
11.12.2018, 23:22
ODoyle, все вы напутали.
хотите поясню что происходит здесь:
for %%i in (*) do set "text2=Z"

цикл будет идти столько сколько файлов там где он запущен ибо так написано: for %%i in (*)
при этом каждый раз переменная %text2% будет принимать значение Z как и указано: set "text2=Z"
соответственно независимо от числа итераций всегда echo %text2% выведет Z

поэтому чему вы там радовались или что вывели или что хотели сказать фразой
Цитата Сообщение от ODoyle Посмотреть сообщение
все прекрасно работает без ухищрений.
для меня совершенно непонятно.


Добавлено через 4 минуты
Цитата Сообщение от ODoyle Посмотреть сообщение
Программа у меня выводила для 3-его диска параметр HDD_TYPE, которого у диска нет вообще
видно же что я это предусмотрел, ровно как и для каждой переменной
Цитата Сообщение от alpap Посмотреть сообщение
@if not "%HDD_TYPE%"=="" (echo HDD_TYPE:"%HDD_TYPE%") else (echo HDD_TYPE:"No param")
если не нужен вывод в файл, просто убрать стр15 и 22
но вам надо именно усложнить ...
0
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8
12.12.2018, 11:05  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
все вы напутали
Возможно напутал. Я имел ввиду вывод переменных в самом цикле командой echo и разница между написанием %var% и !var!. Я этого не знал, а так как присваивание и вывод значений переменных я делал в цикле, то для меня это было критично.

Цитата Сообщение от alpap Посмотреть сообщение
видно же что я это предусмотрел, ровно как и для каждой переменной
Вот результат вывода вашей программы:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1.txt
HDD_NAME:"/dev/sda"
HDD_VENDOR:"Seagate Barracuda 7200.14 (AF)"
HDD_MODEL:"ST1000DM003-1ER162"
HDD_SERIAL:"Z4Y1S7B6"
HDD_TYPE:"3.5 inches"
HDD_SIZE:"1,00 TB"
 
2.txt
HDD_NAME:"/dev/sdb"
HDD_VENDOR:"Seagate Desktop HDD.15"
HDD_MODEL:"ST4000DM000-1F2168"
HDD_SERIAL:"Z300D821"
HDD_TYPE:"3.5 inches"
HDD_SIZE:"4,00 TB"
 
3.txt
HDD_NAME:"/dev/sdc"
HDD_VENDOR:"Western Digital Black"
HDD_MODEL:"WDC WD5000BPKX-00HPJT0"
HDD_SERIAL:"WD-WX41AC3K4300"
HDD_TYPE:"3.5 inches"
HDD_SIZE:"500 GB"
Для диска /dev/sdc параметр HDD_TYPE должен вывести по логике "No param" так как у него этот параметр отсутствует. Видимо переменная сохраняет предыдущее значение. Именно это я и хотел объяснить.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.12.2018, 17:16
Лучший ответ Сообщение было отмечено ODoyle как решение

Решение

Цитата Сообщение от ODoyle Посмотреть сообщение
должен вывести по логике "No param"
ага
тогда попробуйте подпрограмму взять в теги setlocal endlocal
Windows Batch file
1
2
3
4
5
6
7
...
 
:#
 setlocal
  блок команд
 endlocal
exit /b
1
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8
13.12.2018, 10:58  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
тогда попробуйте подпрограмму взять в теги setlocal endlocal
Да, так работает, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2018, 10:58
Помогаю со студенческими работами здесь

Как проверить если ли значение в textBox или нет
Здравствуйте У меня обработчик событий должен проверять правильное ли значение ввели и есть ли оно вообще Как можно проверить есть ли...

Как подменить значение value в CHtml::listData в Yii?
Добрый день, Как можно провернуть такую вещь, но синтаксически правильно, заведомо известно, что name - имеет тип int ...

Как создать функцию, которая выдает среднее значение элементов произвольной матрицы?
Подскажите пожалуйста, как реализовать функцию, которая выдает среднее значение элементов произвольной матрицы? дикий нуб в java, но...

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так?
#include <iostream> #include <iomanip> #include <cmath> using namespace std; long Fact(short m)// функция вычисления факториала ...

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru