내가 뭘 잘못하고 있는지 알 수 없습니다. vbs 스크립트를 시작하는 배치 파일이 있습니다. 스크립트는 파일 이동, 생성, 삭제와 같은 일부 파일에서 일부 작업을 수행합니다 ... 잘 작동합니다. 박쥐를 실행하면 vbs 스크립트가 시작되고 모든 것이 작동합니다. 박쥐 파일은 단지 cscript 파일을 만듭니다.예약 된 경로를 찾을 수없는 vbs
문제는이 박쥐 파일을 예약했기 때문입니다. 시간이 다가 오면 실행되지만 vbs 스크립트에서 "path not found"오류가 발생합니다.
일괄 작업을 실행하는 11 개의 작업이 있고 매끄럽게 실행되고 스크립트가 실행되므로 (내가 컨트롤러를 넣었습니다) 일정 작업 문제가 아닙니다. 그러나 vbs 스크립트는 항상 동일한 경로를 찾을 수 없음 오류를 반환합니다.
다시 스크립트를 수동으로 실행하면 문제없이 실행됩니다.
작업이 수동으로 파일을 실행하는 데 사용하는 것과 동일한 계정으로 예약되므로 권한 문제가 아닙니다. 방금 배치를 두 번 클릭하면 실행되고 작업 스케줄 관리자에서 실행을 클릭하면 실패합니다.
시스템은 Windows Server 2008 R2 표준입니다. 은 이미 모든 사람에게 ....
감사를 삭제하고 새 작업을하고, 다시 부팅을 시도
[업데이트]
내가 여기 코드의 일부 붙여
FILE : D : \ 스크립트는 conf.ini
[script1]
fileA=D:\Rep\exportA.csv
fileB=D:\Rep\exportB.csv
fileC=D:\Rep\exportC.csv
dirHistory=D:\Rep\history
파일을 \ : D : 스크립트 \ \는
을 merge.vbs 이 라인에서Dim iniObj
Set iniObj=New ClsINI
If iniObj.OpenINIFile("D:\scripts\conf.ini") = False Then
wLog("Impossible to read file ini")
Set iniObj = Nothing
Chiudi()
End If
Dim errIni,tmpVal
Dim fileA,fileB,fileC,dirHistory
errIni = iniObj.GetINIValue("script1", "fileA", fileA)
tmpVal = iniObj.GetINIValue("script1", "fileB", fileB)
errIni = errIni+tmpVal
tmpVal = iniObj.GetINIValue("script1", "fileC", fileC)
errIni = errIni+tmpVal
tmpVal = iniObj.GetINIValue("script1", "dirHistory", dirHistory)
errIni = errIni+tmpVal
If errIni > 0 Then
wLog("Error loading file ini")
wLog(errIni)
iniObj.CloseINIFile()
Set iniObj = Nothing
Chiudi()
End If
wLog("File ini Caricato")
Dim objFso,posizioneFile,Fase
Dim arrElement,resArray,actionArray,cedoleArray,varArray ,i
Dim conn,rs,strCon
Dim maxPos,maxTemp
Dim objExcel, objSheet,cella
Set objFso = CreateObject("Scripting.FileSystemObject")
if objFso.FileExists(fileA) then
objFso.DeleteFile(posizione)
wLog("File posizione moved")
else
wLog("File posizione not found")
end if
0 것은 "을 (를) 찾을 수 없습니다 경로"의 오류
Set posizioneFile = objFso.OpenTextFile(fileA, 8, True)
If not objFso.FileExists(fileB) then
SendEmail("nego")
Fase=false
Else
Set tFile = objFso.OpenTextFile(fileB, 1)
strFile=tFile.ReadAll
tFile.Close
posizioneFile.WriteLine strFile
objFso.MoveFile fileB, dirHistory&"\Negoz_"& CreaId(2) & ".csv"
End If
posizioneFile.Close
FILE : D :
echo Start Merge %date% %time% >> Started.log
cscript D:\scripts\merge.vbs
죄송합니다 \ 스크립트 \ merge.bat 나는 그것을 넣어하지 않은 경우 전에는 코드가 괜찮다고 생각했기 때문에 Windows 문제라고 생각했습니다.
감사
오류가 발생하면'fileA'의 값은 무엇입니까? 오류를 발생시키는 행 앞에'WScript.Echo fileA' 행을 추가하고 a) 절대 경로를 얻고 b) 경로가 있는지 확인하십시오. 상대 경로를 얻은 경우 경로가 내부에 존재하면 작업 디렉토리 ('WScript.Echo objFso.GetAbsolutePathName (".")')를 확인하십시오. –
이미 변수 값을 에코하려고했는데 올바른 절대 경로를 보여 주며 존재합니다. 내가 할 수있는 모든 디버깅을 시도했지만 모든 것이 잘 보입니다. 나는 심지어 다른 배치가 merge.bat를 실행하도록 시도했다. 그리고 그것은 작동합니다. 그러나 일단 예정되면 오류를 반환합니다. 파이썬에서 모든 것을 다시 작성하려고 생각했지만 해결되지 않은 것들을 남기고 싶지 않고 변환 할 800 줄의 코드가 있습니다 ... – Dario
'WScript.Echo objFso.FileExists (fileA) : WScript.Echo objFso.FolderExists (objFso.GetParentFolderName (fileA))'. 또한'fileA'가 실제 파일 이름을 포함한다는 것을 다시 한번 확인하십시오 (즉,''\''이 없습니다). –