Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Содержание файлов записать в один файл 
Author Message
Volniy



PostPosted: Sun Nov 27, 2005 19:12    Post subject: Reply with quote

Zorroz wrote:
Batya
Данный скрипт заработал, после того как я в параметрах кнопки указал «%p» вместо «%P». Но стихи(они же файлы) сортируются не по алфавиту, и у названия стихотворения стоит «.txt» Как можно сделать чтобы они сортировались по алфавиту(т.е. также как видны файлы в панели) и как избавиться от «.txt» после названия стихотворения.

Если бы указал %P в кавычках, то все бы работало нормально. Что касается нового запроса (ты ничего раньше не говорил о сортировке), то вот тебе другой вариант, который работает со списком выделенных файлов (а значит его можно приспособить и для использования с результатами поиска и brachview). Обрати внимание, что параметра теперь два и оба лучше написать в кавычках!
Code:
'===============================================================
' Формирование файла с содержимым выделенных
'  файлов на панели

' В параметрах вызова из TC должно быть прописано:
' "%P" "%L" (именно в кавычках!)
'===============================================================

Option Explicit
Dim FSO, NewFileOpen, DirFiles
Dim FileList, LstTS
Dim CurDirObj, Path_NewFile
Dim TS, ScanFile, CurrentDir

Set FSO = CreateObject("Scripting.FileSystemObject")
CurrentDir = WScript.Arguments(0)
FileList = WScript.Arguments(1)

Set CurDirObj = FSO.GetFolder(CurrentDir)

Path_NewFile = FSO.BuildPath(CurDirObj.Path, FSO.GetBaseName(CurDirObj) & ".txt")
If FSO.FileExists(Path_NewFile) Then
  Dim res
 
  If vbYes <> MsgBox("Файл " & Path_NewFile & " уже существует. Перезаписать его?", _
      vbYesNo + vbExclamation, "Внимание!") Then
     WScript.Quit
  End If
End If

Set LstTS = FSO.OpenTextFile(FileList, 1)
Set NewFileOpen = FSO.CreateTextFile(Path_NewFile, True)

Do While Not (LstTS.atEndOfStream)
    Set ScanFile = FSO.GetFile(LstTS.ReadLine)
    With NewFileOpen
      .WriteLine "================================"
      .WriteLine FSO.GetBaseName(ScanFile.Name)
      .WriteLine "--------------------------------"
      .WriteLine
      Set TS = ScanFile.OpenAsTextStream(1)
      .Write TS.ReadAll
      TS.Close
      .WriteBlankLines (4)
   End With
Loop

LstTS.Close
NewFileOpen.Close

MsgBox "Создан файл " & Path_NewFile & " с содержимым выделенных файлов.", _
       vbInformation, "Результат"

Set CurDirObj = Nothing
Set NewFileOpen = Nothing
Set TS = Nothing
Set LstTS = Nothing
Set FSO = Nothing

WScript.Quit
'===============================================================

View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group