2014-04-18 1 views
2

배치 파일에 날짜를 보내고 요일을 반환해야합니다. date 매개 변수는 과거 또는 미래에있을 수 있습니다. 여러 날짜 함수를 살펴 보았지만 모두 오늘 날짜를 사용하고 있습니다. 배치 매개 변수에 날짜 매개 변수를 보내 요일을 반환 할 수 있습니까? 내가 파워 쉘의 도움으로 윈도우 7배치 파일에 날짜 매개 변수와 반환 요일을 입력하십시오.

+0

정말 순수한 일괄 처리에 제약이 있습니까? powershell 날짜 ('2014-05-18') - 형식 % V' – wmz

+0

죄송합니다. '% u' 여야합니다. 일주일에 잘못 먹었을 것입니다. 낮이 아니야. 이 숫자를 반환, 다른 옵션도 사용할 수 있습니다. – wmz

+0

사실, 나는 요일이 필요합니다. 예 : 월, 화. 불행히도 배치 형식으로 유지해야합니다. – user3549841

답변

2

을 사용하고 있습니다 :

set a=03.12.2013 
for /f %%i in ('powershell ^(Get-Date %a% -f dddd^)') do set long=%%i 
for /f %%i in ('powershell ^(Get-Date %a% -f ddd^)') do set short=%%i 
echo Day is %long% (%short%) 
1

.bat으로 이것을 저장하고

@if (@X)==(@Y) @end/*** Javascript comment 
@echo off 
set "date1=04/14/2014" 
(
    mshta "about:<title>dow</title><body onload='init("%date1%")'><script language='javascript' src='file://%~dpnxf0'></script><span id='arg1'>%date1%</span></body>" 
) | (
    for /f "tokens=* delims=" %%B in ('more') do (
     echo day of the week: %%B 
    ) 
) 
exit /b 0 

**/ 

function init(ds) { 
    //var dt = document.getElementById('arg1').value; 
    var the_date=new Date(Date.parse(ds)); 
    var the_day=the_date.getDay(); 
    //alert(the_day); 
    var fso= new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1); 
    //fso.Write(the_date.getDay()); 
    close(fso.Write(the_day)); 

} 
1

이 원하는 날짜에 date1을 변경하는 것은 VBS를 사용하여 배치 스크립트입니다 평일을 얻으려고.

:: Get weekday and day of week number, for a date 
@echo off 
if "%~1"=="" echo Use this to get the day of week: "%~nx0" dd-mm-yyyy& pause & goto :EOF 
set file="%temp%\%~n0.temp.vbs" 
echo>%file% WScript.Echo weekday(#%~1#) 
for /f %%a in ('cscript //nologo %file%') do set "daynum=%%a" 
del %file% 
for /f "tokens=%daynum% delims=," %%a in ("Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday") do set "weekday=%%a" 
echo dow is "%daynum%" - "%weekday%" 
pause