2016-08-15 2 views
0

안녕하세요. 사전에 도움을 주셔서 감사합니다. .xlsx 파일 끝에 날짜를 추가하는 데 사용하는 일괄 스크립트와 관련된 전문가의 도움이 필요합니다.배치 파일 - 파일 끝 부분에 계산 된 날짜 추가

현재 스크립트가 정상적으로 작동하고 파일의 끝에 현재 날짜가 추가됩니다.하지만 현재 날짜에 12 일을 빼고 현재 날짜에서 6 일을 더하여 끝에 추가합니다. 다음과 같은 형식의 파일을

setlocal enabledelayedexpansion 

for %%F in ("C:\test*.xlsx") do (set "MDate=%%~tF" 
set "ParsedDate=!MDate:~6,4!!MDate:~0,2!!MDate:~3,2!" copy %%F%%~dpnF!ParsedDate!%%~xF.new) 

for %%F in ("C:\test*.xlsx") do (del %%F) 

ren "C:\test*.new" *. 

exit 
:

Test 20160807-20160813.xlsx. 

다음 그래서 그 파일 이름 Test, 여기 YYYYMMDD (minus 12) - YYYYMMDD (minus 6).xlsx

내가 현재 그 현재 날짜를 가져옵니다 사용하고 스크립트입니다

출력은 Test20160815.xlsx이지만, Test 20160807-20160813.xlsx이 필요합니다. 누군가 내가 잘못하고있는 것을 도와 줄 수 있습니까? PowerShell의

+4

일괄 처리 (셸 스크립트)에서 날짜 산술을 수행하는 대신 PowerShell을 사용하면 훨씬 쉽습니다. –

+0

입력 빌 주셔서 감사합니다. PowerShell에서 솔루션을 제공 할 수 있습니까? –

+0

VBScript 또는 JavaScript와 같은 실제 날짜/시간 산술을 지원하는 다른 스크립트를 [tag : batch-file]에 포함시킬 수 있습니다. 물론, PowerShell도 구현 될 수 있습니다. – aschipfl

답변

0

간단한 예 : PowerShell에서

$today = [DateTime]::Today 
$date1 = $today.AddDays(-12) 
$date2 = $today.AddDays(-6) 
"Test {0:yyyyMMdd}-{1:yyyyMMdd}.xlsx" -f ($date1),($date2) 

날짜 문자열이 아니다. 그것들은 1 급 개체입니다. 이 예에서는 $today에 오늘 날짜가 지정됩니다 (문자열이 아닌 [DateTime] 개체). $date1은 오늘 날짜의 12 일 전에 도착하고 $date2은 오늘 날짜의 6 일 전에 가져옵니다. 마지막 줄의 코드는 PowerShell 형식 (-f) 연산자를 사용하여 원하는 형식으로 날짜가 포함 된 사용자 지정 문자열을 출력합니다.

관련 문제