亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? batch.c

?? Dos7.01的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	}

	return(total);
}

MLOCAL BOOLEAN CDECL test_cond(cptr)
BYTE	**cptr;
{
	BYTE	*cmd,*str1, *str2, *ptr;
	DTA	search;
	BOOLEAN not, cond, neg,is_user;
	BYTE	level;
        BYTE    c[]=" \n";
        WORD	attr;
	UWORD   userid;
	LONG	val1,val2;

        cmd=*cptr;
        not = cond = NO;			/* Initialise the Flags     */

	if(!strnicmp(cmd = deblank(cmd), "not", 3)) {
	    not = YES;
	    cmd = deblank(cmd+3);
	}

	switch(if_index(&cmd)) {
	
	    /*
	     *	EXIST Option extract the possibly ambiguous filename
	     *	and check if it exists.
	     */
	    case 0:
		cmd = deblank(get_filename(heap(), cmd, YES));
		cond = !ms_x_first(heap(), ATTR_STD|ATTR_HID, &search);
		break;
		
	    /*
	     * DIREXIST Option checks if the given directory exists
	     */
	    case 1:
		cmd = deblank(get_filename(heap(), cmd, YES));
		attr = ms_x_chmod(heap(), ATTR_ALL, 0);
		if (attr < 0) cond = FALSE;
		else cond = (attr & 0x10);
		break;

	    /*
	     *	ERRORLEVEL Option extract the decimal number from the
	     *	command line.
	     */
	    case 2:
		level = 0;
		neg = FALSE;
		
		if(*cmd =='-') {
		    neg = TRUE;
		    cmd++;
		}

		if(!isdigit(*cmd)) {		/* SYNTAX error if the	    */ 
		    syntax();			/* first character is not a */
		    return FALSE;			/* digit.		    */
		}

		while(isdigit(*cmd))
		    level = level * 10 + (*cmd++ - '0');

		level = level & 0x00FF;

		if (neg) level = -level;

	        cond = (level<=(err_ret & 0x00FF)); 
		break;


/*RG-02*/
#if !defined(NOXBATCH)
#if (defined(CDOSTMP) || defined(CDOS))
	    /*
	     *	KEY ["string"] [==] [""] Search for the string "string" and
             *  display it if it exists, then read a key and echo it.
             *  However, if the string to match is null "" then do a keyboard
             *  status check and return TRUE if there is no key there
	     */
	    case 3:
		    cmd = deblank(cmd);
                ptr=cmd;
                if (display_string(&ptr)!=0)
                    return FALSE;

        	    cmd = deblank(ptr); 
	        while(*cmd == '=')		/* Remove any "=" string     */
	            cmd++;

	        cmd = deblank(cmd);
                if ((*cmd==0)||(*(cmd+1)!=' ')) { /* check for condition */
 	            syntax();
                    return FALSE;
                }

                /* read a character from the keyboard */
    	        c[0]=bdos(C_RAWIO, 0xFD);	/* Get a character from console */

                /* echo the char typed */
	        if (echoflg) 				/* echo to screen if wanted */
		    putc(c[0]);
	        crlf();			/* print cr/lf			*/
                
                /* check if it matches */
                if((tolower(c[0])==*cmd)||(toupper(c[0])==*cmd))
                    cond=TRUE;
                else 
                    cond=FALSE;

                /* skip the condition */
	        while (*cmd!=' ')
                    cmd++; /* skip the char */
        
		    break;

#endif
#if !defined (NOSECURITY) && (defined(CDOSTMP) || defined(CDOS))
	    /*
	     *	USERID Option extract the 4 digit hex user id
	     *	and check if it is us.
	     */
	    case 4:
                if (!login_enabled())
                    return FALSE;
		    cmd = deblank(cmd);
	        if(aschextobin(cmd)==get_user_on_station())
                    cond=TRUE;
                else
                    cond=FALSE;
                
                do {   /* skip past the user id */
                    if ((*cmd>='0' && *cmd<='9')
                        ||(tolower(*cmd)>='a' && tolower(*cmd)<='f'))
                        cmd++; /* skip the hex digit */
                    else {
               		    syntax();	
		            return FALSE;
                    }
	        } while (*cmd!=' ');
		break;

            /*
	     *	LOGINNAME Option extract the loginname and check if it is us.
	     */
	    case 5:
                if (!login_enabled())
                    return FALSE;
                is_user=TRUE;

            /*
	     *	GROUPNAME Option extract the loginname and check if it is us.
	     */
	    case 6:
                if (!login_enabled())
                    return FALSE;
		    cmd = deblank(cmd);
                if(aschextobin(user_info.userid)!=get_user_on_station()) {
	            if(get_user_info(get_user_on_station())!=0) {
                        syntax();
                        is_user=cond=FALSE;
			return FALSE;
                    }
                }
                if((is_user==TRUE)&&(strncmp(strlwr(cmd),strlwr(user_info.loginname),strlen(user_info.loginname))==0)) {
                    cond=TRUE;
                    cmd+=strlen(user_info.loginname);
                }
                else if((is_user!=TRUE)&&(strncmp(strlwr(cmd),strlwr(user_info.groupname),strlen(user_info.groupname))==0)) {
                    cond=TRUE;
                    cmd+=strlen(user_info.groupname);
                }
                else {
                    cond=FALSE;
	            while (*cmd!=' ')
                        cmd++; /* skip the name */
                }
                if (*cmd!=' ') {
                    is_user=cond=FALSE;
                }
                is_user=FALSE;
		break;

#endif
#endif /*NOXBATCH*/
/*RG-02-end*/            
            /*
	     *	String comparison option.
	     */
	    default:
		str1 = cmd;			/* Extract String 1	    */

		while ((!is_blank(cmd)) && (*cmd != '=') &&
		       ((*cmd != '!') || (cmd[1]!= '=')) &&
		       (*cmd != '<') && (*cmd != '>')) {

		    cmd = skip_char(cmd);
		}

		str2 = cmd;
		cmd = deblank(cmd);

		attr = get_operator(cmd++);

		if (attr == -1) {
		    syntax();
		    return(FALSE);
		}

		*str2 = 0;

		if (*cmd == '=' || *cmd == '>') cmd++;

		cmd = deblank(cmd);
		str2 = cmd;
		while (!is_blank(cmd)) cmd = skip_char(cmd);
		*cmd++ = 0;

		if (*str1 == '#') {
		    val1 = get_decimal(str1);
		    val2 = get_decimal(str2);    
		    switch(attr) {
		      case OP_EQ: cond = (val1==val2); break;
		      case OP_NE: cond = (val1!=val2); break;
		      case OP_LT: cond = (val1<val2); break;
		      case OP_LE: cond = (val1<=val2); break;
		      case OP_GT: cond = (val1>val2); break;
		      case OP_GE: cond = (val1>=val2); break;
		    }
		}
		else switch(attr) {
		case OP_EQ:
		    cond = (strcmp(str1,str2) == 0);
		    break;
		case OP_NE:
		    cond = (strcmp(str1,str2) != 0);
		    break;
		case OP_LT:
		    cond = (strcmp(str1,str2) < 0);
		    break;
		case OP_LE:
		    cond = (strcmp(str1,str2) <= 0);
		    break;
		case OP_GT:
		    cond = (strcmp(str1,str2) > 0);
		    break;
		case OP_GE:
		    cond = (strcmp(str1,str2) >= 0);
		    break;
		}
		break;
	}

	if(not) 				/* if negated condition     */
	    cond = !cond;

        *cptr=cmd;
        return cond; /* write result back */
}

#if !defined(NOXBATCH)
BOOLEAN is_it_or(BYTE *cmd)
{
	cmd--;
	if ((*cmd != 0) && (*cmd != '\t') && (*cmd != ' '))
	    return FALSE;
        cmd++;
	if (strnicmp(cmd, "or", 2) != 0)
	    return FALSE;
	cmd+=2;    
	if ((*cmd != '\t') && (*cmd != ' '))
	    return FALSE;
	return TRUE;
}
#endif
GLOBAL VOID CDECL cmd_if(cmd)
BYTE	*cmd;
{
        BOOLEAN cond;
        
	ifcond=cond=test_cond(&cmd);
	
	if(!*deblank(cmd)) {		/* and return a SYNTAX error*/
	    syntax();			/* if it is empty.	    */
	    return;
	}
        if(!cond) {
#if !defined(NOXBATCH)
	    while (!is_it_or(cmd) &&
		       (*cmd != 0)) {
	        if (strnicmp(cmd,"ECHO",4)==0) return;       
	        cmd++;
	    }
            if (*cmd==0) return; /* no OR's so quit now */
	    
	    if_context = TRUE;
	    
	    docmd(deblank(cmd), YES); /* New command starts at "or" */
            
#endif
        }
	else {
	    cmd = deblank(cmd);

	    if (strnicmp(cmd,"AND",3)) {
		if (parse(cmd)) return;	  /* IF won't have been 'parsed' for */
					  /* > or < redirectors so do it now */
	    }

	    if_context = TRUE;
	    				  /* Execute command if the    */
	    docmd(cmd, YES);              /* condition flag is TRUE    */
	}
        if_context=FALSE;
}

/*RG-03*/
#if !defined(NOXBATCH)
GLOBAL VOID CDECL cmd_or(cmd)
BYTE	*cmd;
{
        BOOLEAN cond;
        BYTE    *org_cmd;
        
        cond=test_cond(&cmd);
	if(!*deblank(cmd)) {		/* and return a SYNTAX error*/
	    syntax();			/* if it is empty.	    */
	    return;
	}
        if(!cond) {
       	    org_cmd = cmd;			/* now look for "OR" */
	    while (!is_it_or(cmd) &&
		   (*cmd != 0)) {
		if (strnicmp(cmd,"ECHO",4)==0) while(*cmd) cmd++;
		else cmd++;
	    }
            if (*cmd==0) { /* oh dear, no ORs */
                if (ifcond) /* but so far so good, so do command anyway */
	           docmd(deblank(org_cmd), YES); 
                return;
            }
	    docmd(deblank(cmd), YES); /* New command starts at "or" */
            return;
        }
	else {
            cmd = deblank(cmd);
	    
	    if (strnicmp(cmd,"AND",3)) {
	        if (parse(cmd)) return;	  /* IF won't have been 'parsed' for */
					  /* > or < redirectors so do it now */
	    }
	    
	    ifcond=cond;                 /* Execute command if the    */
	    docmd(cmd, YES);    	 /* condition flag is TRUE    */
        }
}
#endif /*NOXBATCH*/
/*RG-03-end*/


GLOBAL VOID CDECL cmd_for(s)
BYTE *s;
{
FCONTROL *fc;
BYTE *bp1;

	fc = (FCONTROL *) heap_get(sizeof(FCONTROL));

						/* Allocate Control Struct  */
	if(forptr)				/* and prevent nesting of  */
	    goto for_error;			/* FOR Command. 	   */

	s = deblank(s); 			/* Remove leading blanks   */
	if ((*s++ != '%') ||			/* Get the FOR variable    */
	    (fc->forvar = *s++) < ' ')		/* character and save	   */
	    goto for_error;

	if(strnicmp(s = deblank(s), "in", 2))	/* Check for the correct   */
	    goto for_error;			/* command syntax.	   */

	s = deblank(s+2);
	if (*s++ != '(')
	    goto for_error;

	fc->files = (BYTE *)heap();		/* Allocate FOR parameter  */
	while(*s && *s != ')') {		/* buffer and scan the	   */
	    bp1 = (BYTE *)heap();		/* command line generating */
						/* zero terminated strings */
	    while(strchr(batch_sep, *s))	/* Skip any separators	   */
		s = skip_char(s);

	    while(   *s != ')' &&		/* then copy all valid	   */
		     !strchr(batch_sep, *s))	/* characters into buffer  */
		      				/* then zero terminate	   */
		copy_char(&bp1, &s);

	    *bp1++ = '\0';
	    heap_get(strlen(heap()) + 1);	/* Preserve String	    */
	}
	
	*(BYTE *)heap_get(1) = '\0'; 		/* Final String is zero     */
						/* bytes in length	    */
	
	s = deblank(s);
	if(*s++ != ')')
	    goto for_error;
	
	if(strnicmp(s = deblank(s), "do", 2))
	    goto for_error;

	if(in_flag & REDIR_ACTIVE)	/* If Input redirection has been */
	    in_flag |= REDIR_FOR;	/* enabled for this command force*/
					/* it on for the complete command*/

	if(out_flag & REDIR_ACTIVE)	/* If Output redirection has been*/
	    out_flag |= REDIR_FOR;	/* enabled for this command force*/
					/* it on for the complete command*/

	fc->cmd = (BYTE *)heap_get(strlen(s = deblank(s+2)) +1);
	strcpy(fc->cmd, s);

	fc->sflg = NO;			/* File matching inactive  */
	for_flag = YES; 		/* Turn FOR processing ON  */
	forptr = fc;			/* Save control Structure  */
	return;
	
for_error:				/* When a Syntax error occurs	*/
	heap_set((BYTE *) fc);		/* restore the heap and print	*/
	syntax();			/* an error message.		*/
	return;
}

GLOBAL VOID for_end()
{
	if(for_flag) {
	    heap_set((BYTE *) forptr);	/* Terminate FOR processing	*/
	    forptr = (FCONTROL *) NULL; /* restore the HEAP and reset	*/
	    for_flag = NO;		/* control flags.		*/
	}
}

/*.pa*/
/*
 *	This command generates the displayed prompt based on the contents
 *	of the string PROMPT= in the environment. Otherwise the default
 *	prompt string DEFAULT_PROMPT is used.
 */

MLOCAL BOOLEAN prompt_flg = FALSE;	/* Prompt Flag 			*/

MLOCAL VOID prompt()			/* display command line prompt	*/
{
	REG BYTE *cp;
	BYTE	 buf[MAX_PATHLEN];
	BYTE	 c;
#if !STACK
	BYTE	 cpbuf[MAX_ENVLEN];
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲婷婷免费| 福利一区二区在线| 国产91丝袜在线播放0| 欧美三级日本三级少妇99| 久久综合色播五月| 一区二区日韩电影| 成人综合日日夜夜| 91精品国产高清一区二区三区| 久久久久久久久99精品| 亚洲一区二区不卡免费| 成人亚洲一区二区一| 日韩女优电影在线观看| 亚洲综合丁香婷婷六月香| 国产乱码精品一区二区三| 欧美性videosxxxxx| 中文字幕一区二区在线播放| 日本不卡的三区四区五区| 色综合天天综合在线视频| 国产午夜精品理论片a级大结局| 天堂资源在线中文精品| aaa亚洲精品| 国产精品高潮久久久久无| 国产乱码字幕精品高清av| 欧美一级免费大片| 午夜在线成人av| 欧美三电影在线| 亚洲一区二区视频在线| 91免费看`日韩一区二区| 国产精品青草综合久久久久99| 精品一区中文字幕| 久久综合色综合88| 国产成人无遮挡在线视频| 久久综合久色欧美综合狠狠| 蜜臀精品一区二区三区在线观看| 欧美日本一道本| 亚洲高清不卡在线观看| 欧美调教femdomvk| 亚洲一区免费观看| 欧美四级电影在线观看| 日日夜夜精品视频免费| 欧美日本高清视频在线观看| 五月天婷婷综合| 精品久久免费看| 日日夜夜精品视频免费| 日韩一区二区不卡| 国产综合久久久久久久久久久久| 久久久一区二区| 99精品久久免费看蜜臀剧情介绍| 最新热久久免费视频| 97se亚洲国产综合自在线| 伊人性伊人情综合网| 欧美色综合天天久久综合精品| 亚洲国产精品一区二区久久恐怖片| 欧美日产国产精品| 久久99国产乱子伦精品免费| 久久精品欧美日韩| 97久久精品人人做人人爽| 一区二区三区在线视频播放 | 中文字幕不卡的av| 成人白浆超碰人人人人| 亚洲精品成人在线| 欧美一区二区三区的| 国产成人av电影在线观看| 一区二区高清在线| 日韩精品一区二区三区视频 | 成人午夜电影网站| 亚洲男同1069视频| 日韩三级视频在线观看| 成人国产精品免费观看| 亚洲午夜激情网站| 国产日韩欧美精品综合| 欧美日韩国产影片| 国产成人小视频| 亚洲国产日产av| 国产日韩在线不卡| 欧美二区三区的天堂| 成人蜜臀av电影| 日本中文字幕不卡| 亚洲欧美另类久久久精品| 日韩限制级电影在线观看| 99精品桃花视频在线观看| 免费高清不卡av| 亚洲美女在线一区| 国产三级精品在线| 91精品国产综合久久精品| 成人午夜大片免费观看| 日本欧美在线观看| 亚洲精品福利视频网站| 日本一二三四高清不卡| 欧美一区二区三区四区久久| 99综合影院在线| 韩国v欧美v日本v亚洲v| 日本午夜精品一区二区三区电影 | 在线播放欧美女士性生活| www.欧美日韩| 国产一区二区三区日韩| 日韩精品国产精品| 亚洲永久精品国产| 国产精品九色蝌蚪自拍| 久久久久国产精品麻豆| 日韩三级精品电影久久久| 欧美日韩五月天| 欧洲av在线精品| 91色在线porny| 成人av综合一区| 成人v精品蜜桃久久一区| 国产精品亚洲第一| 久久99精品国产| 久久草av在线| 麻豆精品一二三| 久久精品免费看| 蜜臀久久99精品久久久久久9| 亚洲va国产va欧美va观看| 亚洲国产一区视频| 性做久久久久久免费观看| 亚洲欧美国产高清| 亚洲最色的网站| 亚洲国产欧美在线人成| 亚洲一二三区视频在线观看| 亚洲免费观看视频| 亚洲综合丁香婷婷六月香| 亚洲制服欧美中文字幕中文字幕| 亚洲精品国产视频| 亚洲一区二区三区不卡国产欧美| 一片黄亚洲嫩模| 亚洲综合色婷婷| 日韩成人av影视| 免费观看91视频大全| 国产一区二区精品久久91| 国产精品18久久久久久久久| 丁香婷婷深情五月亚洲| 97超碰欧美中文字幕| 欧美三级欧美一级| 日韩女优毛片在线| 国产精品卡一卡二卡三| 亚洲人成小说网站色在线| 亚洲一区二区三区在线| 日本视频中文字幕一区二区三区| 久久99精品久久久久久动态图 | 午夜精品免费在线| 午夜精品爽啪视频| 国产又粗又猛又爽又黄91精品| 国产91精品入口| 在线欧美一区二区| 欧美一区二区精品在线| 国产日韩三级在线| 亚洲一区二区偷拍精品| 精品中文av资源站在线观看| 成人午夜精品在线| 欧美日韩视频在线观看一区二区三区 | 亚洲国产va精品久久久不卡综合| 日韩精品欧美精品| 粉嫩蜜臀av国产精品网站| 欧美午夜影院一区| 久久综合久久综合九色| 1024成人网色www| 丝袜亚洲另类欧美| 粉嫩av亚洲一区二区图片| 欧美日韩国产一级| 国产欧美一区二区三区网站| 亚洲欧洲av另类| 日韩国产在线一| 成人精品视频一区二区三区尤物| 在线观看91视频| 欧美高清在线一区| 亚洲6080在线| 97se亚洲国产综合自在线观| 91精品国产综合久久久蜜臀图片 | 国产精华液一区二区三区| 在线观看区一区二| 欧美国产综合一区二区| 日本在线不卡视频| 日本道精品一区二区三区| 久久久久国产一区二区三区四区| 亚洲成av人片在线观看| 91麻豆精品在线观看| 国产午夜精品久久久久久免费视 | 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日韩av中文字幕一区二区三区| gogogo免费视频观看亚洲一| 日韩视频一区二区| 亚洲资源在线观看| 97精品久久久午夜一区二区三区 | 视频一区在线视频| 99精品久久久久久| 久久精品欧美日韩| 麻豆成人91精品二区三区| 欧美色区777第一页| 亚洲激情自拍偷拍| 91亚洲国产成人精品一区二区三| 久久久久久99久久久精品网站| 免费成人深夜小野草| 欧美性大战xxxxx久久久| 一区二区三区成人在线视频| 成人av中文字幕| 国产精品白丝在线| 91丨九色丨蝌蚪富婆spa| 国产精品传媒视频| av电影天堂一区二区在线| 国产精品久99|