나는이 매우 복잡한 요구 사항을 가지고있다.월 및 연도를 기준으로 적절한 폴더로 파일을 이동하려면 어떻게해야합니까?
ftp 서버에서 로컬 디렉토리의 폴더로 zip 파일을 다운로드했습니다.
그런 다음 아래 코드를 사용하여 파일의 압축을 풉니 다.
Set objZip = CreateObject("XStandard.Zip")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fldr = FSO.GetFolder("C:\MUSK\FTP\MainFolder\")
For Each fil In fldr.Files
If LCase(Right(fil.Name, 4)) = ".zip" Then
zipFilePath = fil.Path
objZip.UnPack zipFilePath, ("C:\MUSK\FTP\Current\")
End If
Next
지금까지는 그렇게 좋았습니다. 문제가 올 경우 여기
이다
이 다운로드 한 파일의 이름 지정 규칙은 다음과 같습니다.
filename_month-day-year.zip
예 : 월 (16), 2012 오늘 가정 할 우리의 요구는
다운로드 한 압축 파일을 잡기 위해
myFile_5-16-2012.zip : 파일 이름은 다음과 같습니다 올바른 폴더에 넣으십시오.
예를 들어 월 및 연도 이름의 폴더가 있습니다.
예 : 우리는
그래서 예를 들어 myFIle_5-16-2012.zip을 고려하여 myFile_5-16-2012.zip이 MAY2012입니다 등 JAN2012, FEB2012을 보유하고 있습니다.위의 스크립트를 사용하여 myFile_5-16-2012.zip 파일을 가져 와서 해당 폴더에 저장하고 싶습니다. 이 예에서 해당 폴더는 MAY2012 일 것입니다. 그런 다음 압축을 풉니 다.
기본적으로 MonthYear 폴더이 교체됩니다
objZip.UnPack zipFilePath, ("C : \ MUSK \ FTP \ 현재 \") 즉
, 대신에 현재 폴더를 MAY2012 또는 월간 조합이 될 것입니다.
이것이 가능합니까?
나는 분명히 행복 할 것이다. 누군가를 혼란스럽게해서 미안해.
이 질문은 ASP와 관련이 없습니다. 그것은 VBScript의 문자열 파싱에 관한 것입니다. 그에 따라 편집 된 태그입니다. –
네, 죄송합니다. 태그를 적절하게 변경해 주셔서 감사합니다. – Kenny
파일 이름이 당신이 말하는 것처럼 논리가 꽤 간단합니다. '_' 다음에 1 문자를 시작하고'.' 앞에 1 문자를 끝내는 파일 이름 부분을 추출합니다. 이는 날짜 부분입니다. 첫 번째 부분을 숫자 달인 첫 번째'-'까지 그리고 마지막 부분부터 마지막'-'까지 추출합니다 (즉, 연도입니다). 숫자 월을 사용하여 문자열 월 이름을 찾고, 두 달을 결합하여 'MonthYear' 폴더 이름을 만들고, 그것이 존재하는지 확인하십시오. 그렇지 않으면 생성하십시오. 그것을 기본 경로에 추가하고이를'Unpack' 절차에 전달하십시오. :) –