스폰서

명령행: DATE 계산 (3953) 2002-01-04

날자를 월, 일, 년으로 분해하기에서, 오늘의 날자를 해석하기 위해 DoAToday를 생성하고 사용자 암호의 만료기간을 해석하기위해 DoAExpDT를 생성했다. Windows NT가 암호 만료 경고를 출력하는 시점 변경을 사용함으로서 Windows NT가 암호만료 경고를 출력하는 시점을 설정할 수 있다. 자신의 암호 만료 경고를 출력하려면 날자를 계산할 필요가 있다. Windows NT 명령행 처리기는 그러한 능력을 제공하지 못한다. 따라서 스스로 만들어야 한다.
call DoAExpDT
call XDate %UserName% %XMM% %XDD% %XYY% Day28.DAT Day30.DAT Day31.DAT
여기서 XDate.bat
@echo off
if /i %2 EQU never goto finish
call Todayp %5 %6 %7
if %TDYYP% GTR %4 goto notify
if %TDMMP% GTR %2 goto notify
if %TDDDP% GTR %3 goto notify
goto finish
:notify
call XNotify %1 %2 %3 %4
:finish
Todayp.bat
@echo off
REM Add XX days to today's date based on the Day tables.
REM The 3 Day tables in this example add 10 days.
REM Day31 is for Jan, Mar, May, Jul, Aug, Oct, & Dec.
REM Day30 is for Apr, Jun, Sep, & Nov.
REM Day28 is for Feb. Leap year is ignored. 
cd %SystemRoot%\System32\Repl\Import\Scripts
call DoAToday
set TDMMP=%TDMM%
set TDYYP=%TDYY%
goto month%TDMM%
:month01
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %3') do set TDDDP=%%j
goto year
:month02
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %1') do set TDDDP=%%j
goto year
:month03
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %3') do set TDDDP=%%j
goto year
:month04
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %2') do set TDDDP=%%j
goto year
:month05
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %3') do set TDDDP=%%j
goto year
:month06
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %2') do set TDDDP=%%j
goto year
:month07
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %3') do set TDDDP=%%j
goto year
:month08
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %3') do set TDDDP=%%j
goto year
:month09
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %2') do set TDDDP=%%j
goto year
:month10
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %3') do set TDDDP=%%j
goto year
:month11
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %2') do set TDDDP=%%j
goto year
:month12
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDDD%-" %3') do set TDDDP=%%j
:year
if %TDDDP% GTR %TDDD% goto yymmdd
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDMM%-" Month.DAT') do set TDMMP=%%j
If %TDMMP% GTR %TDMM% goto yymmdd
for /f "tokens=1,2 delims=-" %%i in ('findstr /B "%TDYY%-" Year.DAT') do set TDYYP=%%j
:yymmdd
XNotify.bat
@echo off
REM echo %1 %2/%3/%4
REM You can use any form of notification that you wish:
REM Net Send %1 Your password expires on %2/%3/%4. Please change it today.
REM or use a freeware command line mailer like Blat.
Day28.DAT
01-11
02-12
03-13
04-14
05-15
06-16
07-17
08-18
09-19
10-20
11-21
12-22
13-23
14-24
15-25
16-26
17-27
18-28
19-01
20-02
21-03
22-04
23-05
24-06
25-07
26-08
27-09
28-10
Day30.DAT
01-11
02-12
03-13
04-14
05-15
06-16
07-17
08-18
09-19
10-20
11-21
12-22
13-23
14-24
15-25
16-26
17-27
18-28
19-29
20-30
21-01
22-02
23-03
24-04
25-05
26-06
27-07
28-08
29-09
30-10
Day31.DAT
01-11
02-12
03-13
04-14
05-15
06-16
07-17
08-18
09-19
10-20
11-21
12-22
13-23
14-24
15-25
16-26
17-27
18-28
19-29
20-30
21-31
22-01
23-02
24-03
25-04
26-05
27-06
28-07
29-08
30-09
31-10
Month.DAT
01-02
02-03
03-04
04-05
05-06
06-07
07-08
08-09
09-10
10-11
11-12
12-01
Year.DAT - 몇 년만 필요하다. 매1월에 한해를 추가하고 지난 해는 삭제한다.
1998-1999
1999-2000
2000-2001
2001-2002
2002-2003
2003-2004
2004-2005
2005-2006
2006-2007
2007-2008
2008-2009
2009-2010
2010-2011
2011-2012
2012-2013
2013-2014
2014-2015
2015-2016
2016-2017
2017-2018
2018-2019
2019-2010
2020-2021

글쓴이 doa | | 프린트 | 메일

명령행: 환경변수 문자열 대치 (4451) 2002-01-04

다음과 같은 방법으로 환경변수내의 한 문자를 교체할 수 있다. set VariableName=%VariableName:=%

글쓴이 doa | 자세히 | 프린트 | 메일

명령행: 날자를 월, 일, 년으로 분해하기 (3530) 2002-01-04

NT에서 이러한 작업을 하기위한 표준적인 기능은 없다. 사용할 수 있는 방법은 날자의 소스와 형식에따라 다르다. 로케일이 USA인 경우에대한 두가지 예가 있다.

글쓴이 doa | 자세히 | 프린트 | 메일

명령행: 배치파일에서 현재의 드라이브와 경로를 판정하고 해당 경로로 이동하기 (5922) 2002-01-04

경로가 지정된 폴더에 다음과 같은 배치파일을 생성할 필요하가 있다. CALL DoADP.BAT은 현재 세션에대해 다음과 같은 환경변수를 설정한다:
DoADP	다음과 같은 형식을 갖는 현재 드라이브와 경로명이다.
	Drive:\Directory\SubDirectory1\SubDirectory2\SubDirectoryN
DoADRIVE	현재의 드라이브이다.  - Drive:
DoAPATH	현재의 경로이다.  -
	\Directory\SubDirectory1\SubDirectory2\SubDirectoryN
현재 드라이브의 루트로 이동 - cd %DoAdrive%\
...Start....DoADP.BAT........................ @echo off for /f "tokens=*" %%i in ('cd') do set DoADP=%%i for /f "tokens=1 delims=:" %%i in ('cd') do set DoADRIVE=%%i: for /f "tokens=2 delims=:" %%i in ('cd') do set DoAPATH=%%i ...End......DoADP.BAT........................ CALL DoATOP.BAT은 현재 세션에대한 DoATOP 환경변수를 현재 드라이브/경로의 최상위 디렉토리로 설정할 것이다. 만약 현재 경로가 드라이브의 루트라면 DoATOPDrive:\가 되며 그렇지 않으면 Drive:\RootDirectory가 될 것이다. ...Start....DoATOP.BAT........................ @echo off for /f "tokens=1 delims=:" %%i in ('cd') do set DoATOP=%%i:\ for /f "tokens=2 delims=\" %%i in ('cd') do set DoATOP=%DoATOP%%%i ...End......DoATOP.BAT........................ CALL DoAUPLVL은 현재 세션에대한 DoAUP 환경변수를 현재 드라이브/경로의 친 디렉토리로 설정한다. ...Start....DoAUPLVL.BAT........................ @echo off call DoAdp call DoAtop set DoAup=%DoAtop% if "%DoAdp%"=="%DoAtop%" set DoAup=%DoAdrive%\ if "%DoAup%"=="%DoAdrive%\" goto end call DoAPARSE 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 :end ...End......DoAUPLVL.BAT........................ ...Start....DoAPARSE.BAT........................ :loop set DoAupw=%DoAup% if "%DoAdrive%\"=="%DoAup%" goto end for /f "tokens=%1* delims=\" %%i in ('cd') do call DoAparm %%i %%j shift if "%DoAupw%"=="%DoAup%" goto end if not "%1"=="" goto loop :end set DoAupw= ...End......DoAPARSE.BAT........................ ...Start....DoAPARM.BAT........................ @echo off if "%2"=="" goto end set DoAup=%DoAup%\%1 :end ...End......DoAPARM.BAT........................ 해당 디렉토리로 이동하기 위해 DoAWALK \Directory\YourBAT.BAT을 호출한다. YourBAT.BAT은 원하는 것을 수행한다. ...Start....DoAWALK.BAT........................ @echo off call DoAdp :loop call DoAuplvl cd %DoAup% call %1 if "%DoAup%"=="%DoAdrive%\" goto end goto loop :end ...End......DoAWALK.BAT........................ 연관된 주제에대해서는 배치 매개변수 해석거의 알리지지않은 도스 트릭을 로그온 스크립트 작성에 이용한다을 본다.

글쓴이 doa | | 프린트 | 메일

명령행: 배치파일의 전체내용(명령과 응답)을 파일로 저장하기기 (3447) 2002-01-04

사용형식: Drive:\BatFolder\BatchName.batDrive:\LogFolder\LogName.log 2&1 이 방법을 시험하기위해 다음과 갈은 내용을 포함하는 c:\zzz\batch1.bat을 생성한다. @echo on REM z: 는 없는 드라이브이다. z: c: cd c:\zzz copy batch1.bat copy.tmp ren copy.tmp ren.tmp dir exit 명령행에서 다음과 같이 입력한다. c:\zzz\batch1.batc:\temp\batch1.log 2&1 c:\temp\batch1.log를 열어보면 다음과 같은 내용을 보게될 것이다.
X:\REM z: 는 없는 드라이브다.

X:\z:
The system cannot find the drive specified.

X:\c:


C:\cd c:\zzz


C:\ZZZcopy batch1.bat copy.tmp
        1 file(s) copied.
C:\ZZZren copy.tmp ren.tmp

C:\ZZZdir
 Volume in drive C is NTDISK
 Volume Serial Number is 1C91_4321
 
  Directory of C:\ZZZ

04/21/98    11:09a                          .
04/21/98    11:09a                          ..
04/21/98    11:04a                           319 batch1.bat
04/21/98    11:04a                           319 ren.tmp
                       4 File(s)                    638 bytes
                                        834,271,232 bytes free

C:\ZZZexit
예약된 작업을 전부 기록하려면 다른 배치파일에 이 명령을 둔다. 예: c:\zzz\batch0.bat은 다음과 같은 내용을 포함한다. c:\zzz\batch1.batc:\temp\batch1.log 2&1 그리고 c:\zzz\batch0.bat을 작업예약 한다. AT hh:mm cmd /c "c:\zzz\batch0.bat"

글쓴이 doa | | 프린트 | 메일

배치 매개변수 해석 (3953)2002-01-04
배치파일을 매개변수(%1)로 호출할 때 이 매개변수를 정확한 의미의 정보로 해석할 수 있다(명령행 확장을 사용하는 경우). 다음 예를 본다: 매개변수 설명 %1 일반적인 매개변수 %~f1
Windows NT 명령행 확장 (3086)2002-01-04
명령행 확장은 Windows NT에서 자동적으로 사용할 수 있다. 명령행의 이러한 특징은 다음 스위치를 사용해서 변경될 수 있다: CMD /y 명령행 확장을 사용안함(CMD.EXE) CMD /x 명령행 확장을 사용함(CMD.EXE)
명령행으로부터 로그온 시간 설정하기 (3108)2002-01-04
NET USER 명령을 다음과 같이 사용할 수 있다: net user doa /time:M-F,08:00-17:00 /Domain 이 명령으로 doa는 평일에 08:00부터17:00 사이에 서버로 로그온 할 수 있다. /times 매개변수의 형식은 다
원하는 DOSKEY 매크로로 명령행 열기 (3627)2002-01-03
DOSKEY 사용하기에서 DOSKEY 매크로를 어떻게 생성하는가를 배웠다. 정의된 DOSKEY 매크로로 명령행을 열기위해 명령행 바로가기의 대상:을 다음과 같이 변경한다. %SystemRoot%system32cmd.exe /k path
Ping의 도움말 (3597)2002-01-03
명령행에서 help ping를 입력할 때 Windows NT는 다음과 같은 메시지를 출력한다. 이 명령어는 도움말 유틸리티가 지원하지 않습니다. "ping /?"를 해 보십시오. ping /?를 입력하면 Windows NT는 다음과
2002-01-03레지스트리를 통한 콘솔 설정(3490)
2002-01-03replace 명령..(3629)
2002-01-03어떻게 배치파일에서 매개변수를 입력받기한 입력창을 띄울 수 있는가(3879)
2002-01-03명령행이나 배치파일로부터 문자열 검색(11122)
2002-01-03그림은 수천단어보다 가치있다(3696)
2002-01-03도스 프로그램 화면 직접 출력하기(3593)
2002-01-03Windows NT 4.0는 두개의 내장된 파일비교 명령을 가지고 있다(3442)
2002-01-03DOSKEY 사용하기(6034)
2002-01-03배치파일용 조건적 처리 기호, 필터, 방향전환 기호(3003)
2002-01-03스케쥴된 잡을 디버깅하기(2580)
Windows  Dynamic HTML  Unix  자주 묻는 질문  Windows 7  Mac OS X 
처음 11 12 13 14 15 16 17

세상사는 이야기



RSS 구독 (익명 | 회원 | 강좌 | 포럼)
(C) 1996 ~ 2017 QAOS.com All rights reserved.