Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка по переменной

Ответить
Настройки темы
CMD/BAT - [решено] Проверка по переменной

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как выполнить проверку ,существует ли папка по переменной в которую указали путь?

Тобишь
Цитата:
set /p dir= Путь:
и как теперь проверить существует ли этот путь?

Отправлено: 23:34, 29-04-2009

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


1. Например, не вводить, а указывать из существующих.
2.
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

:Again
set /p sVar=Enter environment variable name:
if not defined %sVar% echo Not found environment variable name [%sVar%] & goto :Again

echo %sVar%: [!%sVar%!]

endlocal
exit /b 0
3.
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

:Again
set /p sVar=Enter environment variable name:
1>nul 2>&1 set %sVar% || (echo Not found environment variable name [%sVar%] & goto :Again)

echo %sVar%: [!%sVar%!]

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:42, 14-06-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


sov44,
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set /p a="Введите переменную: "
set a=!a:%%=!

if defined %a% (set %a%) else (echo Переменная %a% не определена)


:: set %a%  ( Можно и так )

Последний раз редактировалось Foreigner, 14-06-2012 в 20:34.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:42, 14-06-2012 | #12


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Iska, коды не сработали
Foreigner, то, что надо! Если не затруднит, поясните код (не понял конструкцию set a=!a:%%=!)

Последний раз редактировалось sov44, 15-06-2012 в 22:04.


Отправлено: 21:06, 14-06-2012 | #13


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата sov44:
не понял конструкцию set a=!a:%%=! »
Удаляет из переменной %a% знак "%" если была введена строка вида "%windir%". Так как set /p возвращает введенную строку, а не разыменовывает переменную.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:52, 14-06-2012 | #14


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата sov44:
Iska, коды не сработали »
??

2.
читать дальше »
Цитата:
Код: Выделить весь код
E:\Песочница\0149>0002.cmd
Enter environment variable name:qww
Not found environment variable name [qww]
Enter environment variable name:asd
Not found environment variable name [asd]
Enter environment variable name:windir
windir: [C:\WINDOWS]


3.
читать дальше »
Цитата:
Код: Выделить весь код
E:\Песочница\0149>0003.cmd
Enter environment variable name:zxc
Not found environment variable name [zxc]
Enter environment variable name:vbn
Not found environment variable name [vbn]
Enter environment variable name:SystemRoot
SystemRoot: [C:\WINDOWS]


Update: я, кажется, понял — по предыдущему посту коллеги Foreigner — Вами ожидалось, что вводиться должно не имя переменной окружения, а имя вместе с обрамляющими символами процента, так? Я этого не делал.

Отправлено: 23:53, 14-06-2012 | #15


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата Iska:
имя вместе с обрамляющими символами процента, так? »
Совершенно верно. Тем не менее добавлю скрипты в коллекцию.

Отправлено: 01:13, 15-06-2012 | #16


Аватара для CyberMuesli

Старожил


Сообщения: 207
Благодарности: 18

Профиль | Отправить PM | Цитировать


Цитата Maza Faka:
@Echo Off
Set Folder=C:\Test\
If Exist %Folder% Echo Folder is exist
-------
Это сообщение посчитали полезным следующие участники:
ware »
неправильно

Set Folder=C:\autoexec.bat

результат будет exist

Цитата ware:
Как выполнить проверку ,существует ли папка по переменной в которую указали путь?
Тобишь
Цитата:
set /p dir= Путь:
и как теперь проверить существует ли этот путь? »
call :FolderExist %dir%


::===========================================================================
:FolderExist
::===========================================================================
:: %1=Path[\] folder name without wildcards ("c:\program fi*" is invalid name) [%2]=var
if exist "%~1\*.*" (
set FolderExist=True
) else (
set FolderExist=False
)
if not "%2"=="" set %2=!FolderExist!
goto :eof

-------
Кибер Мюсли

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:46, 17-06-2012 | #17


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Sisin:
А как выйти из положения, не указывая полный путь, т.е. батник кладется в папку, запускается и проверяется наличие рядом папки…»
Цитата:
Код: Выделить весь код
Set Folder=%~dp0Test
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:57, 06-11-2019 | #18


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата Iska:
А как выйти из положения, не указывая полный путь, т.е. батник кладется в папку, запускается и проверяется наличие рядом папки…» »
Спасибо, но догадался уже)))

Отправлено: 01:01, 06-11-2019 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка по переменной

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. NiOl Скриптовые языки администрирования Windows 7 31-01-2019 19:58
[решено] Объявление переменной DenNC AutoIt 3 28-06-2009 13:58
[решено] Отсечение части переменной morgan1991 AutoIt 3 06-04-2009 03:00
[решено] Считывание параметров переменной morgan1991 AutoIt 3 07-03-2009 14:38
[решено] Проблема с переменной Temp Alex007 Автоматическая установка Windows 2000/XP/2003 7 31-08-2006 08:19




 
Переход