2016-08-24 3 views
-1

다음과 같은 bat 파일이 있습니다..bat 파일 타임 스탬프가있는 파일 이름에만 기반한 xcopy 파일

xcopy c:\folder\*.* d:\another_folder\. 
del *.xml 
del *.lst 

생성 된 파일 이름에 타임 스탬프가 있습니다

MY_FILE_11111_08-23-2016_111111.xml을 날짜 시간 MM-DD-YYYY_HHMMSS

로 포맷 된 세 번째 _ 후 시작

파일 이름이 오늘 날짜 인 경우에만 복사 할 bat 명령을 어떻게 작성합니까?

+0

시스템 날짜 형식에 따라 'xcopy c : \ folder \ * % date :/= - % * d : \ another_folder \'와 같이 간단 할 수 있습니다. – wOxxOm

+0

지금까지 무엇을 시도 했습니까? 노력을 공유하십시오! 파일 이름의 날짜/시간 형식이'date/T' 및'time/T' 명령에 의해 반환 된 형식을 준수합니까? – aschipfl

답변

0

Windows 지역 설정에 정의 된 형식으로 현재 로컬 날짜를 보유하는 미리 정의 된 환경 변수 DATE이 있습니다. 명령 프롬프트 창에 출력의 경우

echo %DATE% 

08/23/2016입니다 라인 wOxxOm이 한 줄의 명령으로 이미 제안 단지 각 슬래시는 하이픈으로 문자열에 교체해야합니다 (MM/DD/YYYY)를 실행 선.

set "FileDate=%DATE:/=-%" 
%SystemRoot%\System32\xcopy.exe "C:\Folder\*%FileDate%*" "D:\Another_Folder\" 

그러나 출력은 단지 23/08/2016 두 날짜 형식 예제가 될 것이다 (주말 제외) (주말 포함) 예를 Tue, 23/08/2016위한 경우, 또는 현재 날짜 문자열 포맷해야합니다 :

set "FileDate=%DATE:~-7,2%-%DATE:~-10,2%-%DATE:~-4%" 
%SystemRoot%\System32\xcopy.exe "C:\Folder\*%FileDate%*" "D:\Another_Folder\" 

어떻게 문자 명령 줄 프롬프트를 열고 set /? 또는 대신 help set을 실행하여 읽을 수있는 SET 도움말을 사용하여 특정 하위 문자열 (두 번째 방법)을 각각 바꾸는 방법 (첫 번째 방법)을 설명합니다.

하나의 파일 만 복사해야하는 경우 Windows 표준 콘솔 응용 프로그램 (외부 명령) xcopy.exe 대신 Windows 명령 프로세서의 내부 명령 COPY을 사용하면됩니다. 명령 프롬프트 창에서 copy /?xcopy /?을 실행하면 두 개의 복사 명령에 대한 도움말이 표시됩니다.