2017-12-05 21 views
2

다음 VB 스크립트를 실행하여 SSIS 패키지에 새 디렉터리를 만드는 데 문제가 있습니다. 다음 새 경로 D : \ customers \ documents \ orders \ 20171205를 만들어야합니다.간단한 VB 스크립트에서 문제가 발생했습니다.

Public Sub Main() 
    'set dir path 
    Dts.Variables("var_DirPath").Value = 
     "D:\customers\documents\orders\" + Date.Today.Year.ToString + 
     Date.Today.Month.ToString + Date.Today.Day.ToString 
    Dts.TaskResult = ScriptResults.Success 
End Sub 

스크립트 작업 편집기의 ReadWriteVariables는 사용자 : var_DirPath로 구성됩니다. 변수의 값은 다음과 같습니다

파일 작업이

UseDirector/Exists = True 
Operation = Create directory 
IsSourcePathAvailable = True 
Source variable = User:var_DirPath 

그것은 디버깅하는 동안 패키지에 해결을 위해 구성된 "D \ 고객 \ 문서 \ 주문 \"하지만 나도 몰라 왜이 간단한을 스크립트가 작동하지 않습니다.

를 어떤 도움이 감사합니다.

+0

뭔가 이상한 것 같습니다. @ jmcihinney의 제안처럼 훌륭하게 제공하지 않으면 @ 제공 한 코드가 작동해야합니다. 저에게 그것은 var을 "D : \ customers \ documents \ orders \ 2017125"로 설정합니다. 이 코드가 실행되고 있음을 증명하기 위해 경로 등을 변경할 수 있습니까? – GMan80013

+0

변수를 표현식과 함께 사용하는 것이 스크립트 태스크를 사용하는 것보다 더 간단하다고 생각합니다. – Yahfoufi

+0

@DavidF 제 답변에 몇 가지 제안을했지만, 왜이 간단한 스크립트가 작동하지 않는지 모르겠습니다. .. * 작동하지 않는 방법? 오류 메시지 또는 무엇을 받고 있습니까? * – Hadi

답변

0

제안

당신은 이름이 대소 문자를 구분하기 때문에 변수 이름이 올바르게 입력되어 있는지 확인해야합니다. 또한 날짜 부분을 연결하는 대신 Date.Now.ToString("yyyyMMdd")을 사용할 수 있습니다. 또한

Public Sub Main() 
    'set dir path 
    Dts.Variables("var_DirPath").Value = 
    "D:\customers\documents\orders\" & Date.Now.ToString("yyyyMMdd") 
    Dts.TaskResult = ScriptResults.Success 
End Sub 

시스템 작업이 Delay Validation 재산

간단한 해결책 True에 파일 설정해야합니다 - 사용하여 표현

당신이 표현을 사용하여이를 달성 할 수있는 방법으로, 그냥 이동을 변수 목록에서 변수 var_DirPath을 클릭하고 F4 키를 눌러 속성 탭을 표시 한 다음 속성을 Evaluate as expression 속성으로 설정하고 Expression 속성을 클릭하고 다음 식을 사용합니다.

"D:\\customers\\documents\\orders\\" + (DT_STR, 4, 1252) DATEPART("yyyy" , GETDATE()) + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("MM" , GETDATE()), 2) + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2) 
0

당신이 어떤 날짜 하위 폴더가 표시되지 것입니다하지만 코드가 다른 문제를 가지고 왜 확실하지 않다. 예를 들어 1 월 11 년 11 월 1을 생산하는 것 같은 해에 동일한 폴더 이름을 사용하십시오. 시도해보십시오 :

Dts.Variables("var_DirPath").Value = String.Format("D:\customers\documents\orders\{0:yyyyMMdd}", Date.Now) 

연결보다 좋으며 형식은 모든 날짜에 대해 고유 한 폴더 이름을 보장합니다.