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 

Создание копий файлов с заданными в списке именами

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
midasinc



Joined: 17 Apr 2009
Posts: 25

Post (Separately) Posted: Thu Nov 03, 2011 14:49    Post subject: Создание копий файлов с заданными в списке именами Reply with quote

У меня уже была похожая проблема, ее помогли решить - http://forum.wincmd.ru/viewtopic.php?t=14020&start=0&postdays=0&postorder=asc&highlight=

Если раньше было необходимо получить несколько копий из одного файла с именами взятыми из списка, то теперь необходимо создать по несколько копий из каждого файла в каталоге по списку.

Например:
1. В каталоге находятся 2 файла:
P1_2_1.pdf
P1_2_7.pdf

Есть список в текстовом файле (можно в любом другом):
P1_2_1.pdf TC4430N
P1_2_1.pdf TC4430N-FM
P1_2_1.pdf TC4430N-SF
P1_2_7.pdf TC4436N
P1_2_7.pdf TC4436N-FM
P1_2_7.pdf TC4436N-SF

На выходе нужно получить следующие файлы:
TC4430N.pdf
TC4430N-FM.pdf
TC4430N-SF.pdf
TC4436N.pdf
TC4436N-FM.pdf
TC4436N-SF.pdf

Помогите, пожалуйста, как это возможно сделать? Проблема в том что файлов сотни в списке, вручную это очень долго получается.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 03, 2011 16:45    Post subject: Reply with quote

Code:
'==============================================================================
' Копировать выделенные файлы при совпадении их полных имён с началом строк
' в файле-списке и переименовывать базовые имена копий в оставшиеся части строк

' Параметры: %F "<путь к файлу списку>" "<путь назначения>"
'==============================================================================
With WScript.Arguments
  If .Count = 0 Then WScript.Quit
  FList = .Item(0)
  NList = .Item(1)
  Path  = .Item(2)
  If Right(Path, 1) <> "\" Then Path = Path & "\"
End With
With CreateObject("Scripting.FileSystemObject")         
  For Each F in Split(.OpenTextFile(FList).ReadAll, vbNewLine)
    If F > vbNullString And .FileExists(F) Then
      Ext = .GetExtensionName(F)
      For Each Fn in Split(.OpenTextFile(NList).ReadAll, vbNewLine)
        Fn = Trim(Fn)
        If Fn <> "" And Left(Fn, Len(F)) = F Then _
        .CopyFile F, Path & LTrim(Mid(Fn, InStrRev(Fn, vbTab)+1)) & "." & Ext
      Next
    End If
  Next
End With


Last edited by Flasher on Thu Nov 03, 2011 20:02; edited 2 times in total
Back to top
View user's profile Send private message
midasinc



Joined: 17 Apr 2009
Posts: 25

Post (Separately) Posted: Thu Nov 03, 2011 19:17    Post subject: Reply with quote

Все перепроверил, но выдает почему-то такую ошибку:

TC версий 7.55a и 8.0 beta 7.

Где я ошибся?


Last edited by midasinc on Thu Nov 03, 2011 19:25; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 03, 2011 19:21    Post subject: Reply with quote

На строку параметров можно посмотреть?
Back to top
View user's profile Send private message
midasinc



Joined: 17 Apr 2009
Posts: 25

Post (Separately) Posted: Thu Nov 03, 2011 19:23    Post subject: Reply with quote

Вот такую кнопку сделал:

Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Scripts\CreateCopiesFilesWithNamesFromList.vbs
%F "d:\Projekt\_DATA\PDF\Copy&Rename\namefiles.txt" "d:\Projekt\_DATA\PDF\Copy&Rename\OUT"
Button.dll,44
Создание копий файла с именами из файла-списка


-1
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 03, 2011 19:31    Post subject: Reply with quote

Хм. А файлы тоже на d: расположены?
Back to top
View user's profile Send private message
midasinc



Joined: 17 Apr 2009
Posts: 25

Post (Separately) Posted: Thu Nov 03, 2011 19:34    Post subject: Reply with quote

Да, в папке "Copy&Rename"
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 03, 2011 19:38    Post subject: Reply with quote

Файл со списком в ANSI сохранён?
Back to top
View user's profile Send private message
midasinc



Joined: 17 Apr 2009
Posts: 25

Post (Separately) Posted: Thu Nov 03, 2011 19:39    Post subject: Reply with quote

Все заработало, я разобрался, проблема была в том, что в файле со списками колонки были разделены табуляцией. После замены на пробел все заработало.
Большое спасибо.
А нельзя ли как-то обойти эту проблему?
Список копируется из Excel и табуляция автоматически вставляется, при большом количестве файлов тоже многовато вручную удалять/добавлять получается.

И да файл сохранен в ANSI, это может быть проблемой?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 03, 2011 19:48    Post subject: Reply with quote

Ну, об этом надо было сразу писать, тут-то я вижу пробелы. Сделал. Работать будет при условии, что нет начальной и конечной табуляции.

В ANSI и надо.
Back to top
View user's profile Send private message
midasinc



Joined: 17 Apr 2009
Posts: 25

Post (Separately) Posted: Thu Nov 03, 2011 20:05    Post subject: Reply with quote

Да я сам как-то не заметил то что табуляция, когда стал разбираться, только тогда обратил внимание.

Все работает, очень признателен, спасибо.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 03, 2011 20:27    Post subject: Reply with quote

Пожалуйста. Кстати, если пути несменные, то параметры можно сократить до: %F "%Pnamefiles.txt" "%POUT"
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group