다음 Get-Date
과 같이 cmdlet을 아무 문제없이 포맷 할 수 있습니다 .
$date = Get-Date -format "yyyyMMdd"
그러나 변수에 날짜 가 있으면 어떻게 형식을 지정합니까? 아래 진술
$dateStr = $date -format "yyyMMdd"
이 오류를 반환합니다 :
” ‘-f’연산자의 오른쪽에 값 표현식을 제공해야합니다.”
답변
답변
질문에 대한 답변이 있지만 누락 된 정보가 더 있습니다.
변수 대 Cmdlet
$Date
변수에 값이 있고-f
연산자는 다음 형식으로 작동 'format string' -f values
합니다. 호출 Get-Date -format "yyyyMMdd"
하면 일부 매개 변수를 사용 하여 cmdlet 을 호출합니다 . “yyyyMMdd”값은 매개 변수 값 Format
(try help Get-Date -param Format
)입니다.
-f
운영자
많은 형식 문자열이 있습니다. 적어도 part1 과 part2를보십시오 . 그녀는를 사용합니다 string.Format('format string', values')
. 이라고 생각 'format-string' -f values
때문에, -f
작업자가 같은 매우 유사하게 작동합니다 string.Format
: 스택 오버플로에서 질문에서 더 많은 정보를보기위한 몇 가지 차이점이 (가 있지만 (방법 은 어떻게 정확하게 수행 PowerShell에서의 -f 운영자 작업의 RHS? ).
답변
당신이 할 수있는 한 가지는 :
$date.ToString("yyyyMMdd")
답변
매우 편리한 (아마도 너무 효율적인 것은 아님) 솔루션은 멤버 함수를 사용하는 것입니다 GetDateTimeFormats()
.
$d = Get-Date
$d.GetDateTimeFormats()
날짜-값에 대한 서식 스타일의 큰 문자열 배열을 출력합니다. 그런 다음 []
-operator 를 통해 배열의 요소 중 하나를 선택할 수 있습니다 ( 예 :
PS C:\> $d.GetDateTimeFormats()[12]
Dienstag, 29. November 2016 19.14
답변
간단하고 좋은 방법은 다음과 같습니다.
$time = (Get-Date).ToString("yyyy:MM:dd")
답변
-Format
옵션 을 반드시 사용해야하는 경우이 작업을 수행하십시오 .
$dateStr = Get-Date $date -Format "yyyMMdd"
하나
$dateStr = $date.toString('yyyMMdd')
아마 더 효율적입니다 .. 🙂
답변
이것을 cmd.exe
배치 파일 로 사용하려면 여기에 오십시오.
powershell -Command (Get-Date).ToString('yyyy-MM-dd')