Создание копий файлов с заданными в списке именами
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Создание копий файлов с заданными в списке именами
У меня уже была похожая проблема, ее помогли решить - http://forum.wincmd.ru/viewtopic.php?t= ... 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
Помогите, пожалуйста, как это возможно сделать? Проблема в том что файлов сотни в списке, вручную это очень долго получается.
Если раньше было необходимо получить несколько копий из одного файла с именами взятыми из списка, то теперь необходимо создать по несколько копий из каждого файла в каталоге по списку.
Например:
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
Помогите, пожалуйста, как это возможно сделать? Проблема в том что файлов сотни в списке, вручную это очень долго получается.
Код: Выделить всё
'==============================================================================
' Копировать выделенные файлы при совпадении их полных имён с началом строк
' в файле-списке и переименовывать базовые имена копий в оставшиеся части строк
' Параметры: %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
Последний раз редактировалось Flasher Чт ноя 03, 2011 20:02, всего редактировалось 2 раза.
Последний раз редактировалось midasinc Чт ноя 03, 2011 19:25, всего редактировалось 1 раз.
Вот такую кнопку сделал:
Код: Выделить всё
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
Все заработало, я разобрался, проблема была в том, что в файле со списками колонки были разделены табуляцией. После замены на пробел все заработало.
Большое спасибо.
А нельзя ли как-то обойти эту проблему?
Список копируется из Excel и табуляция автоматически вставляется, при большом количестве файлов тоже многовато вручную удалять/добавлять получается.
И да файл сохранен в ANSI, это может быть проблемой?
Большое спасибо.
А нельзя ли как-то обойти эту проблему?
Список копируется из Excel и табуляция автоматически вставляется, при большом количестве файлов тоже многовато вручную удалять/добавлять получается.
И да файл сохранен в ANSI, это может быть проблемой?
