2016-06-08 4 views
0

저는 Powershell을 사용하는 초보자입니다. Powershell v2.0을 사용하는 서버에서 작업하고 있습니다. 난 그냥 날짜/시간 부분 싶어 2016-06-08-07.30.03.119000-240Powershell v2.0 하위 문자열 추출

:

나는 문자열 ($의 D1)에 할당 된 날짜 값이 2016-06-08- 07.30.03

2016-06-08-07 다음을 수행 할 수있었습니다. 30. 03

echo $d1 > $tempfile 
$d1a = (Get-Content $tempfile | %{ $_.Split('.')[0]; }) 
$d1b = (Get-Content $tempfile | %{ $_.Split('.')[1]; }) 
$d1c = (Get-Content $tempfile | %{ $_.Split('.')[2]; }) 
$d1 = "$d1a.$d1b.$d1c" 

추가 공백없이 원하는 값을 얻을 수있는 방법이 있습니까?

$d1 = ($d1a, $d1b, $d1c -join ".") 

을하지만 제공합니다 :

나는 노력했다..은 System.Object []으로 System.Object []으로 System.Object []를

이 어떤 도움을 이해할 수있을 것이다.

답변

0

추출 할 문자열은 잘 정의 된 길이 (19 자)를 가지고, 그래서 간단한 방법은 Substring() 방법을 사용하는 것입니다 :

$d1.Substring(0, 19) 
+0

감사했다! 전에 substring을 시도했지만 오류가 계속 발생하여 구문을 틀리게 받아 들였을 것입니다. –

+0

powershell 명령 줄에서 정상적으로 작동했지만 스크립트를 실행했을 때 작동했지만 다음 오류도 발생했습니다 : –

+0

'[Microsoft.PowerShell.Commands.MatchInfo]에 메서드 이름이 ' 하위 문자열 '. E : \ DBA \ Scripts \ SchedTasks \ Db2diag \ diagAnalysis_Extract.ps1 : 69 char : 21 + $ d1a = $ d1.Substring <<<< (0, 19) + 범주 정보 : InvalidOperation : (하위 문자열 : 문자열) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound' –