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

Подскажите в чем ошибка?

09.06.2015, 15:32. Показов 1388. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Новичок в этом деле и делал по образцу. Видимо что-то сделал не так. после второго выбора не возвращает %user%
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Echo off
setlocal enabledelayedexpansion
Echo Устанавливаем:
Echo 1 - Для себя
Echo 2 - Для других
Set /p choice="Ваш выбор: "
    if "%choice%"=="1" (
        Echo "Устанавливаем для себя"
        echo reg add "HKEY_CURRENT_USER\Software\RIT\The Bat!" /f /v "Working Directory" /d "\\serv1\the bat$"
        exit
    )
    if "%choice%"=="2" (
        Set /p choice2="Ваш выбор: "
        for %%a in (me analiz assistant biz) do (
        set /a count+=1 
        if !count! equ %choice2% set user=%%a)
        echo reg add "HKEY_CURRENT_USER\Software\RIT\The Bat!" /f /v "Working Directory" /d "\\serv1\the bat$\%user%"
    pause
    )
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2015, 15:32
Ответы с готовыми решениями:

Ошибка "Stack around the variable 'text' was corrupted"
Выскакивает ошибка Stack around the voriable 'text' was corrupted. Подскажите пожалуйста в чём ошибка. #include <iostream> ...

подскажите в чем ошибка
как посчитать в чем подвох

Подскажите, в чем ошибка
При компиляции программы компилятор выдает сообщение: undefined reference to `imput(int)' ld returned 1 exit status ...

4
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.06.2015, 16:31
Лучший ответ Сообщение было отмечено vavun как решение

Решение

Kirirru!

1) В условиях включённого отложенного расширения переменных восклицательные знаки, не относящиеся к служебным символам расширения переменных, нужно экранировать:
Windows Batch file
The Bat^!
.

2) В случаях, когда и присвоение значений переменных, и их использование происходят в конструкциях, заключённых в круглые скобки (или же в одной строке), необходимо использовать в качестве символов расширения переменных символы восклицательного знака, а не символы процента, включив предварительно отложенное расширение переменных, если оно не было объявлено ранее:
Windows Batch file
!choice2!
;
Windows Batch file
!user!
.


Вот так код будет работать:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Echo off
setlocal enabledelayedexpansion
Echo Устанавливаем:
Echo 1 - Для себя
Echo 2 - Для других
Set /p choice="Ваш выбор: "
    if "%choice%"=="1" (
        Echo "Устанавливаем для себя"
        echo reg add "HKEY_CURRENT_USER\Software\RIT\The Bat^!" /f /v "Working Directory" /d "\\serv1\the bat$"
        exit
    )
    if "%choice%"=="2" (
        Set /p choice2="Ваш выбор: "
        for %%a in (me analiz assistant biz) do (
        set /a count+=1 
        if !count! equ !choice2! set user=%%a)
        echo reg add "HKEY_CURRENT_USER\Software\RIT\The Bat^!" /f /v "Working Directory" /d "\\serv1\the bat$\!user!"
    pause
    )
.
2
0 / 0 / 0
Регистрация: 09.06.2015
Сообщений: 6
09.06.2015, 16:52  [ТС]
Ушёл учить матчасть. Спасибо большое.

Добавлено через 9 минут
Скажите, а можно ли как то этот запорожец упростить?
0
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
10.06.2015, 10:30
Лучший ответ Сообщение было отмечено Kirirru как решение

Решение

Цитата Сообщение от Kirirru Посмотреть сообщение
Скажите, а можно ли как то этот запорожец упростить?


Kirirru, алгоритм у Вас верный, да и его воплощение в код также правильное. Я бы ещё рекомендовал вынести саму операцию добавления записи в реестр в процедуру и написать код для действий в случаях отсутствия выбора (если пользователь случайно или преднамеренно нажмёт клавишу "Enter") и неверного выбора (например, если пользователь введёт "5" на каком-либо из двух этапов выбора).

Примерный код такой:

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
@echo off
setlocal enabledelayedexpansion
 
echo Устанавливаем:
echo 1 - Для себя
echo 2 - Для других
 
set "users=me analiz assistant biz"
 
set /p choice="Ваш выбор: "
 
if "%choice%"=="1" (
 echo "Устанавливаем для себя"
 call :sub
 exit /b 1
)
if "%choice%"=="2" (
 for %%a in (%users%) do (
  set /a count+=1
  echo !count! - %%a
 )
 set "count="
 set /p choice2="Ваш выбор: "
 for %%a in (%users%) do (
  set /a count+=1 
  if "!count!" equ "!choice2!" (
   call :sub %%a
   exit /b 2%%a
  )
 )
)
echo The choice is not made, or it is wrong.
pause
exit /b 0
 
:sub
 echo reg add "HKEY_CURRENT_USER\Software\RIT\The Bat^!" /f /v "Working Directory" /d "\\serv1\the bat$\%~1"
 pause
 goto :eof
.

Ещё обратите внимание, что я убрал задание и использование переменной "user", так как если эта переменная не используется в дальнейшем, то она излишняя, но ввёл переменную "users", значением которой является перечисление всех возможных пользователей через пробел, и сделал второе меню с помощью цикла.
1
0 / 0 / 0
Регистрация: 09.06.2015
Сообщений: 6
10.06.2015, 14:58  [ТС]
Спасибо вам большое. Но тут для меня уже начинается тёмный лес. Большинство моих творений это франкенштейны. Рука от одного нога от другого.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2015, 14:58
Помогаю со студенческими работами здесь

Подскажите, в чём ошибка?
Задание: Записи в линейном списке содержат ключевое поле типа int. Сформировать двунаправленный список. Удалить из него элемент с заданным...

Подскажите, в чем ошибка?
uses crt; type reis=record nazv:string; number:integer; tip:string; end; massiv=array of reis; var mas:massiv; ...

Подскажите, в чем ошибка?
uses crt; var x,dx,e,y,a,c,z,h,rez:real; i,n,toch,kl:integer; label k; begin textbackground (9); g:=0; while g=0...

Подскажите в чем ошибка
Вывести матрицу из 20 элементов целого типа. Определить каких элементов больше четных или нечетных { int A, i, m=0, n=0; for(i=0;...

подскажите в чем ошибка
поставлена задача: Задан одномерный массив В, состоящем из n вещественных элементов. Определить позиции массива, в которых расположены...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru