Как скопировать несколько файлов в один?
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4, 5, 6  :| |:
Total Commander -> Автоматизация Total Commander

#76:  Author: FlasherLocation: Москва PostPosted: Wed Nov 15, 2017 19:35
    —
Lisabon
Логика вставки верная. Но скрипт на строку увеличивался. Надо обновиться и переделать.

#77:  Author: Lisabon PostPosted: Wed Nov 15, 2017 19:51
    —
Quote:
Надо обновиться


Обновил скрипт и подправил, получил вот такое:
Code:
With CreateObject("SAPI.SpFileStream")
  If Dic.Exists(FP) And FP <> List(0) Then _
  .Open FP, 2 : .Read FMem, Fl.Size :_
  .Close : Fl.OpenAsTextStream(2).Close
  For i = N To Num - 1
    Fi = List(i) : C = 0 : If Left(Fi, 1) = "\" Then C = 2
    If FP = Fi Then Buff = FMem : FMem = "" Else _
    .Open Fi, C : .Read Buff, Dic.Item(Fi) : .Close
    With CreateObject("SAPI.SpFileStream") 
    .Open FP, 1 : .Seek Fl.Size : .Write Buff : Buff = "" : .Close
    End With
  Next
End With


Теперь ошибка вот такая:
Code:
Сценарий:   D:\Program\Total_Commander\Scripts\JoinBinFiles.vbs
Строка:   73
Символ:   5
Ошибка:   0x80045025
Код:   80045025
Источник:    (null)

Но теперь есть прогресс в лучшую сторону. Создаваемый (объединённый) файл теперь не пустой, а теперь в него копируется содержимое, только одного файла (первого) из трёх.

Кнопка у меня вот такая:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Scripts\JoinBinFiles.vbs
%WL "%P" 2 %N
C:\Windows\System32\WScript.exe,2
JoinBinFiles


-1

#78:  Author: FlasherLocation: Москва PostPosted: Wed Nov 15, 2017 20:05
    —
Хм. А если так?:
Code:
With CreateObject("SAPI.SpFileStream")
  If Dic.Exists(FP) And FP <> List(0) Then _
  .Open FP, 2 : .Read FMem, Fl.Size :_
  .Close : Fl.OpenAsTextStream(2).Close
End With
For i = N To Num - 1
  Fi = List(i) : C = 0 : If Left(Fi, 1) = "\" Then C = 2
  With CreateObject("SAPI.SpFileStream")
    If FP = Fi Then Buff = FMem : FMem = "" Else _
    .Open Fi, C : .Read Buff, Dic.Item(Fi) : .Close
  End With
  With CreateObject("SAPI.SpFileStream")
    .Open FP, 1 : .Seek Fl.Size : .Write Buff : Buff = "" : .Close
  End With
Next

#79:  Author: Lisabon PostPosted: Wed Nov 15, 2017 20:50
    —
Flasher
Quote:
А если так?

Скрипт работает. Ошибок и проблем пока не наблюдаю.

#80:  Author: FlasherLocation: Москва PostPosted: Wed Nov 15, 2017 21:01
    —
Lisabon
Эврика. Smile А с длинными путями как?

#81:  Author: Lisabon PostPosted: Wed Nov 15, 2017 21:21
    —
Flasher
Code:
А с длинными путями как?

Нормально.

#82:  Author: FlasherLocation: Москва PostPosted: Wed Nov 15, 2017 21:22
    —
Lisabon
Хорошо. Поздравляю.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4, 5, 6  :| |:
Page 6 of 6

Powered by phpBB © 2001, 2005 phpBB Group