728x90

작업중인 특정한 파일이 있는데 작업하는 프로그램에서 주기적인 파일 백업을 지원하지 않아 사용자가 별도의 백업을 수행해야 하는 경우가 있습니다. 명령줄만 있으면 작업 스케줄러에 등록하여 자동 실행 되도록 할 수 있습니다.

"set timestamp=%date:/=%%time::=_%" 명령어는 현재 날짜와 시간을 가져와서 "timestamp"라는 환경 변수에 저장하는 명령어입니다.

set timestamp=%date:/=_%_%time::=_%

copy D:\test.log D:\test_%timestamp%.log

set timestamp=

 명령어를 각각의 부분으로 나눠서 설명하면 다음과 같습니다.

  1. "%date%" : 현재 날짜를 나타내는 시스템 환경 변수인 %date%를 사용합니다.
  2. "/=" : %date%에 저장된 날짜에서 "/" 문자를 "_" 문자로 대체합니다.
  3. "%time%" : 현재 시간을 나타내는 시스템 환경 변수인 %time%을 사용합니다.
  4. "::=" : %time%에 저장된 시간에서 ":" 문자를 "_" 문자로 대체합니다.
  5. "%date%%time%" : 앞서 변환한 날짜와 시간 값을 합쳐서 변수 %date%%time%에 저장합니다.
  6. "%date%%time::=%" : %date%%time% 변수에 저장된 값을 다시 "::="을 이용해 ":" 문자를 "_" 문자로 대체합니다.
  7. "set timestamp=%date%%time::=%" : 최종적으로, %date%%time% 변수에 저장된 값을 timestamp 환경 변수에 할당합니다.

위의 과정을 거치면 현재 날짜와 시간이 "_"(언더스코어)를 구분자로 하나의 문자열로 만들어집니다. 이 문자열은 "timestamp" 환경 변수에 저장됩니다. 이후 "copy" 명령어에서 이 환경 변수를 파일 이름에 사용하여 새로운 파일 이름을 생성합니다.

가장 마지막 줄에서 환경 변수의 값을 지정하지 않는 이유는 그 값을 초기화 하기 위함입니다.

>set timestamp=%date:/=_%_%time::=_%

>copy test.log test_%timestamp%.log
        1개 파일이 복사되었습니다.

>dir
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: C8C9-93EB

디렉터리

2023-02-24  오후 07:10    <DIR>          .
2022-06-26  오후 07:59                 0 TEST.LOG
2022-06-26  오후 07:59                 0 test_2023-02-24_19_10_43.10.log
               2개 파일                   0 바이트
               1개 디렉터리  357,889,036,288 바이트 남음

 

728x90
728x90

윈도우 바탕화면에 아이콘 추가 하는 레지스트리 명령어입니다. 예전 윈도우 7 부터 PC를 사용했던 분들은 꼭 찾으시더라고요. 저는 Mdir과 윈도우 3.1 부터 사용했지만 저 아이콘 없이도 살아갑니다. ^___^ 바탕화면에 아무것도 없는걸 좋아해요

  • ::내컴퓨터
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t REG_DWORD /d "0" /f
  • ::내문서
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{450D8FBA-AD25-11D0-98A8-0800361B1103}" /t REG_DWORD /d "0" /f

  • ::네트워크
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}" /t REG_DWORD /d "0" /f

  • ::휴지통
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{645FF040-5081-101B-9F08-00AA002F954E}" /t REG_DWORD /d "0" /f

  • ::제어판
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{21EC2020-3AEA-1069-A2DD-08002B30309D}" /t REG_DWORD /d "0" /f

  • ::즐겨찾기
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{BFA58EC4-4420-4A6D-8AD3-7F8F874543E6}" /t REG_DWORD /d "0" /f

  • ::최근에 사용한 파일
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{22877a6d-37a1-461a-91b0-dbda5aaebc99}" /t REG_DWORD /d "0" /f

배치파일로 쉽게 만들 수 있도록 메모장에 붙여넣으면 주석 처리되게 :: 기호 사용하였습니다.

728x90
728x90

github에 공개된 내용입니다. 

https://github.com/npocmaka/batch.scripts/blob/master/hybrids/iexpress/bat2exeIEXP.bat

 

GitHub - npocmaka/batch.scripts: batch script utils and examples by npocmaka -

batch script utils and examples by npocmaka - . Contribute to npocmaka/batch.scripts development by creating an account on GitHub.

github.com

아래 내용을 긁어 메모장에 옮긴 뒤 .bat 파일로 저장합니다.

 ;@echo off
; rem https://github.com/npocmaka/batch.scripts/edit/master/hybrids/iexpress/bat2exeIEXP.bat
;if "%~2" equ "" (
; echo usage: %~nx0 batFile.bat target.Exe
;)
;set "target.exe=%__cd__%%~2"
;set "batch_file=%~f1"
;set "bat_name=%~nx1"
;set "bat_dir=%~dp1"

;copy /y "%~f0" "%temp%\2exe.sed" >nul

;(echo()>>"%temp%\2exe.sed"
;(echo(AppLaunched=cmd.exe /c "%bat_name%")>>"%temp%\2exe.sed"
;(echo(TargetName=%target.exe%)>>"%temp%\2exe.sed"
;(echo(FILE0="%bat_name%")>>"%temp%\2exe.sed"
;(echo([SourceFiles])>>"%temp%\2exe.sed"
;(echo(SourceFiles0=%bat_dir%)>>"%temp%\2exe.sed"
;(echo([SourceFiles0])>>"%temp%\2exe.sed"
;(echo(%%FILE0%%=)>>"%temp%\2exe.sed"


;iexpress /n /q /m %temp%\2exe.sed

;rem del /q /f "%temp%\2exe.sed"
; exit /b 0

[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=0
HideExtractAnimation=1
UseLongFileName=1
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles

[Strings]
InstallPrompt=
DisplayLicense=
FinishMessage=
FriendlyName=-
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
;

변환 순서 (예. BATtoEXE.bat 로 저장 함)
1. 변환 할 파일(예. ABCDEFG.bat)을 BATtoEXE.bat 와 같은 폴더에 둔다
2. cmd 창을 열어 BATtoEXE.bat 가 저장된 폴더로 이동한다.
3. 다음과 같은 명령어로 변환 할 수 있다
    BATtoEXE.bat ABCDEFG.bat ABCDEFG.exe

해본 바로는 파일 이름을 가리는 경향이 큽니다.
변환이 잘 안된다면 파일 이름을 변경하여 실행하면 잘 변환됩니다. (setup.bat 변환 됨)
경로에 띄어쓰기나 한글이 있다면 변환 혹은 실행에 오류가 있는 경우도 발생됩니다.

배치 파일 내 한글은 작동하지 않습니다. ("echo 안녕하세요" 이런거)

아래는 chatGPT를 이용해 코드를 줄여보았는데 테스트는... 안해봤습니다.
맥북 사용중이라 -_-a 

@echo off
;if "%~2" equ "" (
; echo usage: %~nx0 batFile.bat target.Exe
;)
set "target.exe=%__cd__%%~2"
set "batch_file=%~f1"
set "bat_name=%~nx1"
set "bat_dir=%~dp1"

copy /y "%~f0" "%temp%\2exe.sed" >nul
(echo(AppLaunched=cmd.exe /c "%bat_name%"
echo(TargetName=%target.exe%
echo(FILE0="%bat_name%"
echo([SourceFiles]
echo(SourceFiles0=%bat_dir%
echo([SourceFiles0]
echo(%%FILE0%%=
))>>"%temp%\2exe.sed"

iexpress /n /q /m %temp%\2exe.sed

rem del /q /f "%temp%\2exe.sed"
exit /b 0
@echo off
if "%~2" equ "" (
  echo usage: %~nx0 batFile.bat target.Exe
  exit /b 1
)

set "target.exe=%__cd__%%~2"
set "batch_file=%~f1"
set "bat_name=%~nx1"
set "bat_dir=%~dp1"

copy /y "%~f0" "%temp%\2exe.sed" >nul

(
  echo()
  echo(AppLaunched=cmd.exe /c "%bat_name%")
  echo(TargetName=%target.exe%)
  echo(FILE0="%bat_name%")
  echo([SourceFiles])
  echo(SourceFiles0=%bat_dir%)
  echo([SourceFiles0])
  echo(%%FILE0%%=)
)>>"%temp%\2exe.sed"

iexpress /n /q /m %temp%\2exe.sed

rem del /q /f "%temp%\2exe.sed"
exit /b 0

(주석 처리된 부분을 제거하고 명령 체인을 하나로 합치는 방법)

728x90
728x90

레지스트리 적용
REG ADD "....(중략)\Main" /v "Start Page" /t REG_SZ /d tistory.com /f

레지스트리 삭제
REG DELETE "....(중략)\Main" /v "Start Page" /f (Start Page 값 이름 삭제)
REG DELETE "....(중략)\Main" /f (Main 과 그 아래 전체 값 삭제)

윈도우 서비스 시작
sc start Fax

윈도우 서비스 중지
sc stop Fax

윈도우 서비스 시작 방법 변경
sc config Fax start= auto : 자동 시작
sc config Fax start= demand : 수동 
sc config Fax start= disabled : 사용 안함

 

728x90
728x90

보안이 강화 되어있는 대기업이나 같은 보안을 중요시하는 곳에서는 인터넷 방화벽을 사용하는데 사이트 이용 권한을 얻기 위해 방화벽 해제 신청등을 할 것이다. 그러면 방화벽 담당자들은 유저 아이피와 타겟 아이피를 물어본다. 같은 말이지만 컴퓨터 아이피와 사이트 아이피를 물어본다 -_-a

 

사이트 아이피를 확인하기위해선 해당 사이트 서버관리자에게 문의를 해도 되지만 도스 CMD 명령으로 대충은 파악 할 수 있다.

 

nslookup 명령을 이용한다.

Google 사이트의 주소를 알아본다.

 

명령 nslookup google.com

권한 없는 응답 부분에 보이는 아이피 주소가 구글서버 아이피라고 보면 된다.

해당 아이피 주소를 인터넷 주소창에 입력하면 구글 사이트가 열린다.

 

이렇게 알아낸 아이피 주소로 방화벽 해제등의 신청을 하면 된다.

 

일생활에선 알지 않아도 되는 명령어가 되겠다 -_-a

728x90

+ Recent posts