0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 8

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

29.11.2018, 20:12. Показов 2891. Ответов 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
6806 / 2305 / 349
Регистрация: 10.12.2013
Сообщений: 7,932
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru