View previous topic :: View next topic |
Author |
Message |
midasinc
Joined: 17 Apr 2009 Posts: 25
|
(Separately) Posted: Thu Nov 03, 2011 14:49 Post subject: Создание копий файлов с заданными в списке именами |
|
|
У меня уже была похожая проблема, ее помогли решить - 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 |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 03, 2011 16:45 Post subject: |
|
|
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 |
|
 |
midasinc
Joined: 17 Apr 2009 Posts: 25
|
(Separately) Posted: Thu Nov 03, 2011 19:17 Post subject: |
|
|
Все перепроверил, но выдает почему-то такую ошибку:
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 |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 03, 2011 19:21 Post subject: |
|
|
На строку параметров можно посмотреть? |
|
Back to top |
|
 |
midasinc
Joined: 17 Apr 2009 Posts: 25
|
(Separately) Posted: Thu Nov 03, 2011 19:23 Post subject: |
|
|
Вот такую кнопку сделал:
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 |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 03, 2011 19:31 Post subject: |
|
|
Хм. А файлы тоже на d: расположены? |
|
Back to top |
|
 |
midasinc
Joined: 17 Apr 2009 Posts: 25
|
(Separately) Posted: Thu Nov 03, 2011 19:34 Post subject: |
|
|
Да, в папке "Copy&Rename" |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 03, 2011 19:38 Post subject: |
|
|
Файл со списком в ANSI сохранён? |
|
Back to top |
|
 |
midasinc
Joined: 17 Apr 2009 Posts: 25
|
(Separately) Posted: Thu Nov 03, 2011 19:39 Post subject: |
|
|
Все заработало, я разобрался, проблема была в том, что в файле со списками колонки были разделены табуляцией. После замены на пробел все заработало.
Большое спасибо.
А нельзя ли как-то обойти эту проблему?
Список копируется из Excel и табуляция автоматически вставляется, при большом количестве файлов тоже многовато вручную удалять/добавлять получается.
И да файл сохранен в ANSI, это может быть проблемой? |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 03, 2011 19:48 Post subject: |
|
|
Ну, об этом надо было сразу писать, тут-то я вижу пробелы. Сделал. Работать будет при условии, что нет начальной и конечной табуляции.
В ANSI и надо. |
|
Back to top |
|
 |
midasinc
Joined: 17 Apr 2009 Posts: 25
|
(Separately) Posted: Thu Nov 03, 2011 20:05 Post subject: |
|
|
Да я сам как-то не заметил то что табуляция, когда стал разбираться, только тогда обратил внимание.
Все работает, очень признателен, спасибо. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 03, 2011 20:27 Post subject: |
|
|
Пожалуйста. Кстати, если пути несменные, то параметры можно сократить до: %F "%Pnamefiles.txt" "%POUT" |
|
Back to top |
|
 |
|