2013-08-09 7 views
0

У меня проблема с пониманием командного файла, который является частью задачи (вроде hackme). Мне сложно найти информацию об этом в google, я не знаю, я чувствую, что нет какой-либо хорошей документации по пакетному языку или чего-то другого, что является твердым.Пакетное программирование - некоторые вопросы

мой первый вопрос, что он делает? Можно dont удовлетворяют условию?

if not "!"=="" (
echo Authorization failed! 
pause>nul 
exit 
) 

Secound вопрос, что делает этот вид ИФ:

set %1.pass=%2 
if "!%1.pass:~5,1!"=="" (

.....

if not "!%1.pass:~6,1!"=="" (

Спасибо,

@EDIT

technet.microsoft.com/en-us/library/cc754340(v=ws.1 0) .aspx

я прочитал его, он не ответит на мои вопросы

+1

Официальный ссылка пакетный язык находится по адресу http://technet.microsoft.com/en-us/library/cc754340(v=ws.10).aspx – FrankPl

+0

Я прочитал его перед тем, как я опубликовал его, и он не отвечает на мои вопросы, его очень плохой справочник , – larw

+0

На ваш первый вопрос: Является ли код реальным исходным кодом, или это то, что эхо во время исполнения? Последнее заменило бы переменные. Если вы д. г. будет иметь переменную% ABC%, которая не установлена, тогда 'if not '!" == "% ABC%" ('будет отображаться как первая строка вашего кода во время выполнения. – FrankPl

ответ

2

Вы можете проверить это сами:

@echo off &SETLOCAL 
if not "!"=="" (ECHO NOT equal) ELSE ECHO equal 
SETLOCAL ENABLEDELAYEDEXPANSION 
if not "!"=="" (ECHO NOT equal) ELSE ECHO equal 

SET "property.pass=ABCDE" 
ECHO %property.pass:~0,1% %property.pass:~1,1% %property.pass:~2,1% %property.pass:~3,1% 

Выход:

 
NOT equal 
equal 
A B C D 
Смежные вопросы