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

#16:  Author: Сергеич PostPosted: Sat Feb 12, 2005 14:30
    —
Quote:
Ну не уж такую фичу в тотале не могли сделать?

Есть. собирает-разбирает. Но собирает только в том случае если сам он и разбирал.
Для остальных случаев видать автор считает, что рядовым юзерам это совсем не надо, а продвинутые и сами знают как собрать.
ИМХО он думает правильно, а то мож народ решит так архивы объединять или документы Ворда.... а потом жаловаться будет....

я кстати пару разобъединял файлики так: проходил групповым переименованием, а потом меню "файл" - "собрать".

#17:  Author: mike PostPosted: Sat Feb 12, 2005 14:33
    —
Вот как раз для рядовых-то и надо. Ну да ладно чего обсуждать, пора закрывать тему

#18:  Author: NakaRBLocation: Москва PostPosted: Sat Feb 12, 2005 17:49
    —
чего мучаетесь? в папку суете файлы для объединения, переименовываете их типа file01.txt, file02.txt,..,file99.txt. ставите курсор на первый файл в списке, лезете в меню Files|Combine files и жмем ОК. и еще раз ОК. и в панельке напротив получаем файлик file01.out с содержимым всех фалов. меняем разрешение на txt и радуемся Wink

#19:  Author: mike PostPosted: Mon Feb 14, 2005 07:33
    —
Я же уже говорил, нужно для Чайников, попробуй им объяснить это, особенно какой-нибудь бабуле которая мышью работать не умеет толком

#20:  Author: Сергеич PostPosted: Mon Feb 14, 2005 12:29
    —
Значит надо этой бабуле так давать файлы чтоб она легко смогла их собрать. Стандартно или с бат-файлом. В этом и фикус. А дай бабуле струмент в руки неизвестно что она удумает. Вы бы ещё ей хардлинки в руки дали..... Wink

#21:  Author: mike PostPosted: Mon Feb 14, 2005 12:34
    —
Она должна выбрать по куче файлов нужный, например через ctrl+q
просмотреть, а потом отмечая нужные их склеить - имена файлов какие есть не изменить

#22:  Author: doRn PostPosted: Mon Dec 31, 2007 18:00
    —
Есть куча файлов вида
a.001
a.002
b.001
b.002
c.001
c.002
...
можно как нить автоматически(не вручную по однаму) собрать их в
a.out
b.out
c.out
...
соответственно

#23:  Author: doRn PostPosted: Tue Jan 08, 2008 05:03
    —
без вариантов?

#24:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Jan 10, 2008 19:29
    —
doRn
С варантами все просто - пара десятков строк в скрипте.
Сложно со временем.
Тебе срочно?

#25:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Fri Jan 11, 2008 09:41
    —
doRn
Только 001 и 002?
Создать bat файл с именами файлов, удалить расширения, добавить copy в начале строк, продублировать имена и расширения для склеивания файлов.

#26:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Jan 11, 2008 15:58
    —
doRn
С добавлением всех проверок и собственной сортировки по возрастанию номера в расширении получилось чуть больше 20 строк Smile
Только crc-сумму я не проверяю.
Code:
'=================================================================================
' Склеивание выделенных файлов.
' Два режима работы скрипта:

' 1. Склеиваются только файлы с цифровым расширением.
' Если после отбрасывания цифрового расширения у файлов останется какое-либо
'   расширение, то оно будет у итогового файла, иначе - расширение out:
' (*.001,...,*.999) -> *.out; (*.ext.001,...,*.ext.999) -> *.ext
' Папка (существующая) формирования итоговых файлов указывается вторым параметром.
' Параметры вызова из TC:
' %L "%T"
' или
' %L "%P"

' 2. Склеиваются все файлы в один, если вторым параметром указан файл, а не папка.
' Такой файл не должен существовать.
' Параметры вызова из TC:
' %L {путь итогового файла}
' Пример:
' %L "%Tresult.txt"
'=================================================================================
Option Explicit
' Проверяем число параметров
Dim Title
Title = "Склеивание выделенных файлов"
If WScript.Arguments.Count < 2 Then
  MsgBox "Неправильно заданы параметры!", _
    vbOKOnly + vbCritical, Title
  WScript.Quit
End If

Dim FSO, Out, Mode
Set FSO = CreateObject("Scripting.FileSystemObject")
Out = WScript.Arguments(1)
If FSO.FolderExists(Out) Then
  Mode = 1
Else
  If FSO.FileExists(Out) Then
    MsgBox "Файл " & Out & " уже существует!" & vbNewLine &_
           "Работа скрипта будет прервана.", _
           vbOKOnly + vbCritical, Title
    Set FSO = Nothing
    WScript.Quit
  Else
    Mode = 2
  End If
End If

Dim List, ListArr, WSH, L, Line
List = FSO.OpenTextFile(WScript.Arguments(0), 1).ReadAll
ListArr = Split(List, vbNewLine)

Set WSH = CreateObject("WScript.Shell")
Select Case Mode
  Case 1 Mode1Proc
  Case 2 Mode2Proc
End Select

Set WSH = Nothing
Set FSO = Nothing
WScript.Quit

Sub Mode1Proc
  Dim ListDic, Name, Ext, ExtOut, FileOut, PathOut, k
  Set ListDic = CreateObject("Scripting.Dictionary")
  For Each L In ListArr
    Ext = FSO.GetExtensionName(L)
    If IsNumeric(Ext) Then
      Name = FSO.GetBaseName(L)
      ExtOut = FSO.GetExtensionName(Name)
      If ExtOut = "" Then
        ExtOut = "out"
      Else
        Name = FSO.GetBaseName(Name)
      End If
      FileOut = Name & "." & ExtOut
      PathOut = Out & FileOut
      If FSO.FileExists(PathOut) Then
        WSH.Popup "Файл " & PathOut & " уже существует." & vbNewLine &_
                  "Склеивание в этот файл не будет выполнено!", _
                  1, Title, vbOKOnly + vbCritical
      Else
        If Not ListDic.Exists(PathOut) Then
          Set ListDic.Item(PathOut) = CreateObject("Scripting.Dictionary")
        End If
        ListDic(PathOut).Add CInt(Ext), L
      End If
    End If
  Next
  For Each L In ListDic.Keys
    Line = ""
    For k = 1 To 999
      If ListDic(L).Exists(k) Then
        Line = Line & "+""" & ListDic(L)(k) & """"
      End If
    Next
    Line = Mid(Line, 2)
    WSH.Run "%ComSpec% /c copy /b " & Line & " """ & L & """", 7, True
  Next
  Set ListDic = Nothing
End Sub

Sub Mode2Proc
  Line = ""
  For Each L In ListArr
    If FSO.FileExists(L) Then
      Line = Line & "+""" & L & """"
    End If
  Next
  Line = Mid(Line, 2)
  WSH.Run "%ComSpec% /c copy /b " & Line & " """ & Out & """", 7, True
End Sub


Добавлено: Переделал скрипт - теперь склеивать можно не только текстовые файлы.

#27: Как слить несколько текстовых файлов в один? Author: evshi PostPosted: Mon May 25, 2009 12:52
    —
Есть команда "Собрать файлы", но она работает, если файлы последовательно проименованы. А у меня разные названия.

1. Можно ли в таком случае как-то слить через total?
2. Если все таки по п.1 нельзя, то, в принципе, файлы через командную строку можно слить так "copy /b file.0000+file.0001+file.0002 file.result". Как это можно прикрутить в total? В идеале хотелось бы выделять нужные файлы и, нажав команду, получить результат.

#28:  Author: Worros PostPosted: Mon May 25, 2009 13:09
    —
Ctrl+M , потом собирать.

#29:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Mon May 25, 2009 13:24
    —
Была утилитка под названием combain (именно так, а не combine). Поищи. Я сейчас не дома, а то бы выслал. Мне она в свое время много времени сэкономила. Встраивается в ТС.

#30:  Author: BatyaLocation: Москва, Россия PostPosted: Mon May 25, 2009 13:29
    —
evshi
Как собрать несколько файлов в один

 !  Avada:
Ссылка поправлена.



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  Next  :| |:
Page 2 of 6

Powered by phpBB © 2001, 2005 phpBB Group