Czesc,
mam skrypt ktory pomaga mi w pracy. Za pomoca programu Irfan dzieli pliki .tif na jednostronicowe po czym laczy je w jeden wielki .tif porozdzielany separatorami. Problem jednak w tym, ze przy wiekszej ilosci plikow gubi mi niektore strony. Zauwazylem ze gdy plik wynikowy na polskie znaki skrypt generuje mi dwa pliki wynikowe. Jeden wlasciwy a drugi ze stronami ktore uciekly.
dir_temp = "plikiTmp"
file_separator = InputBox("Plik separatora:", "IRFAN_APP", "C:\Users\zyskg\Desktop\Separatory\serar_bols.tif")
file_done = InputBox("Plik wynikowy:", "IRFAN_APP", "C:\Users\zyskg\Desktop\" & replace(date , "-", "_") & "_BOLS.tif")
file_ini = "\\vfs01\profiles\zyskg\My Documents\Archiwum\raporty\"
file_counter = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
if fso.FolderExists(dir_temp) then
fso.DeleteFolder dir_temp, true
fso.CreateFolder(dir_temp)
else
fso.CreateFolder(dir_temp)
end if
dir_curr = fso.GetAbsolutePathName(".")
If Right(dir_curr, 1) <> "\" Then dir_curr = dir_curr & "\"
'główna pętla, przeszukuje katalog w którym jest plik IRFAN.vbs w poszukiwaniu plikow TIF
Set fld = fso.GetFolder(dir_curr)
For Each fil In fld.Files
if LCase(Right(fil.Name, 3)) = "tif" or LCase(Right(fil.Name, 4)) = "tiff" then
file_counter = file_counter + 1
'rozpakowanie znalezionego pliku tif na jednostronicowe pliki
IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & dir_curr & fil.Name & "/extract=(" & dir_curr & dir_temp & "\" & " ,tif)/killmesoftly"
Set s01 = WshShell.Exec(IrfanCommand)
Do While (s01.Status = 0)
WScript.Sleep 100
Loop
'pętla odnajduje plik pierwszej strony i dodaje tekst
Set fld_t = fso.GetFolder(dir_temp)
For Each fil_t In fld_t.Files
if LCase(Right(fil_t.Name, 8)) = "0000.tif" then
temp_file_name = fil_t.name
fso.MoveFile dir_curr & dir_temp & "\" & temp_file_name, dir_curr & dir_temp & "\" & replace(temp_file_name, "_page_0000", "")
IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & dir_curr & dir_temp & "\" & replace(temp_file_name, "_page_0000", "") & "/ini=""" & file_ini & """ /advancedbatch /convert=" & dir_curr & dir_temp & "\" & temp_file_name & "/killmesoftly"
Set s01 = WshShell.Exec(IrfanCommand)
Do While (s01.Status = 0)
WScript.Sleep 100
Loop
fso.DeleteFile dir_curr & dir_temp & "\" & replace(temp_file_name, "_page_0000", ""), true
set fld_t = nothing
set fil_t = nothing
exit for
end if
Next
'dodanie separatora
IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & file_separator & "/append=" & file_done & " /silent /killmesoftly"
Set s01 = WshShell.Exec(IrfanCommand)
Do While (s01.Status = 0)
WScript.Sleep 100
Loop
'pętla przegląda folder tymczasowy i dodaje je do pliku wynikowego za separatorem
Set fld_t = fso.GetFolder(dir_temp)
For Each fil_t In fld_t.Files
IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & dir_curr & dir_temp & "\" & fil_t.Name & "/append=" & file_done & " /silent /killmesoftly"
Set s01 = WshShell.Exec(IrfanCommand)
Do While (s01.Status = 0)
WScript.Sleep 100
Loop
Next
'usunięcie plików tymczasowych
fso.DeleteFile dir_temp & "\*", true
end if
Next
'usunięcie folderu tymczasowego
fso.DeleteFolder dir_temp, true
set fso = nothing
set WshShell = nothing
set fld = nothing
set fil = nothing
set fld_t = nothing
set fil_t = nothing
msgbox "Przetworzonych zostało: " & file_counter & " plków.", o, "IRFAN_APP"