уже есть. Поиском пользоваться умеем?job.forme писал(а):а вот такой вариант
Автоматическое создание папок
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
job.forme
Всё там досказано. Параметры все указаны. Если есть по ним вопросы, то в указанной теме и надо спрашивать.
Всё там досказано. Параметры все указаны. Если есть по ним вопросы, то в указанной теме и надо спрашивать.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Доброе время суток.
Очень нуждаюсь в помощи. Срочно нужен скрипт. Задача: Есть папка с большим количеством фото. Необходимо их отсортировать следующим способом. Выделяются нужные картинки, и при нажатии на кнопку создаётся новая папка(в той же папке где лежат фото) и в эту папку перемещаются выделенные ранее фото. Требований к названием папок нет(ну разве только что бы названия не повторялись.).
Прочесть последний пост на предыщущей странице, а потом последующие уже на этой - это проблема, на это нужно много времени?UFO_hA писал(а):Всё что я здесь пока прочитал не подходит. А времени свободного просто нет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
По части имени файла
Подскажите пожалуйста, как изменить этот скрипт, чтобы он создавал папки по ЧАСТИ имени файла, а не по всему имени файла.
Пример:
Есть файл: 2016.01.01.(14-01-16).jpg
Нужно создать папку (2016.01.01) по первым 10 символам, и поместить туда все файлы, начинающиеся на эти 10 символов
Пример:
Есть файл: 2016.01.01.(14-01-16).jpg
Нужно создать папку (2016.01.01) по первым 10 символам, и поместить туда все файлы, начинающиеся на эти 10 символов
Попробуйте так.
Код: Выделить всё
' Создание папки по имени файла и перемещение в нее файла
' Может быть выделено несколько файлов
' Для создания папок в текущей панели
' в параметрах вызова из TC должно быть прописано:
' %L
' Для создания папок в противоположной панели
' в параметрах вызова из TC должно быть прописано:
' %L "%T"
' основан на коде Batya
'=====================================================================
If WScript.Arguments.Count = 0 Then
MsgBox "Нужны такие параметры:" + vbNewLine + vbNewLine + "%L" + vbNewLine + vbNewLine + "Или такие параметры:" + vbNewLine + vbNewLine + "%L ""%T""", vbOKOnly + vbError, "No Parameteres"
Wscript.Quit
End If
Dim TempFile, FSO, SelFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TempFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Name = InputBox("Введите количество символов", "Input", 10)
If Name = "" Then
Wscript.Quit
End If
Dim FileName, FilePath, DashInName, NewFilePath
Do While Not TempFile.AtEndOfStream
Set SelFile = FSO.GetFile(TempFile.ReadLine)
FileName = FSO.GetBaseName(SelFile)
FilePath = SelFile.ParentFolder
LName = (Left(FileName, Name))
If WScript.Arguments.Count > 1 Then
NewFilePath = WScript.Arguments(1) & LName
Else
NewFilePath = FilePath & "\" & LName
End If
If Not FSO.FolderExists(NewFilePath) Then
FSO.CreateFolder(NewFilePath)
End If
If Not FSO.FileExists(NewFilePath & "\" & FileName & "." & FSO.GetExtensionName(SelFile)) Then
FSO.MoveFile SelFile, NewFilePath & "\"
Else
MsgBox "Files Already Exist", vbOKOnly + vbError, "Error"
End If
Loop
Set TempFile = Nothing : Set FSO = Nothing : Set SelFile = Nothing : Wscript.Quit
Последний раз редактировалось Zmy Вс мар 26, 2017 07:15, всего редактировалось 2 раза.
Badboy
Без оверквотинга никак? Снизу памятки в первом пункте что написано?
Сам могу такую вещь предложить (в примерах 2 варианта решения):Если имя файла не соответствует искомой в выражении части, то он остаётся на месте.
Без оверквотинга никак? Снизу памятки в первом пункте что написано?
Сам могу такую вещь предложить (в примерах 2 варианта решения):
Код: Выделить всё
'================================== VBS ================================
' Перемещение выбранных файлов в создаваемые при необходимости каталоги
' с тем же базовым именем или его частью, заданной регулярным выражением
' Параметры: %WL "<путь получателя>" <регулярное выражение>
' Условие: искомая часть в регулярном выражении записывается в скобках.
' Если второй параметр не задан или пуст, то
' получателем будет родительский каталог файла.
' Примеры: %WL "%T" | %WL "" ^(\d+\.\d+\.\d+) | %WL "%T" (.{10})
'=======================================================================
Set A = WSH.Arguments : C = A.Count : If C = 0 Then WSH.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ShAp = CreateObject("Shell.Application")
Set List = FSO.OpenTextFile(A(0),,,-1)
If C = 3 Then _
Set Reg = New RegExp : Reg.Global = True:_
Reg.IgnoreCase = True : Reg.Pattern = A(2)
Do : F = Trim(List.ReadLine)
If FSO.FileExists(F) Then
BN = FSO.GetBaseName(F)
If IsObject(Reg) Then If Reg.Test(BN) Then _
BN = Reg.Execute(BN)(0).Submatches(0) Else BN = ""
If Len(BN) Then
NF = "" : If C > 1 Then If A(1) <> "" Then NF = FSO.BuildPath(A(1),BN)
If NF = "" Then NF = FSO.BuildPath(FSO.GetParentFolderName(F), BN)
If Not FSO.FolderExists(NF) Then FSO.CreateFolder(NF)
ShAp.NameSpace(NF).MoveHere F
End If
End If
Loop Until List.AtEndOfStream : List.Close
Последний раз редактировалось Flasher Пн мар 20, 2017 15:39, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
ИзменитьBadboy писал(а):Подскажите пожалуйста, как изменить этот скрипт, чтобы он создавал папки по ЧАСТИ имени файла, а не по всему имени файла.
Пример:
Есть файл: 2016.01.01.(14-01-16).jpg
Нужно создать папку (2016.01.01) по первым 10 символам, и поместить туда все файлы, начинающиеся на эти 10 символов
Код: Выделить всё
If WScript.Arguments.Count > 1 Then
NewFilePath = WScript.Arguments(1) & FileName
Else
NewFilePath = FilePath & "" & FileName
End If Код: Выделить всё
If WScript.Arguments.Count > 1 Then
NewFilePath = WScript.Arguments(1) & Left(FileName, 10)
Else
NewFilePath = FilePath & "" & Left(FileName, 10)
End If Нет, я не сплю. Я просто медленно моргаю.
Badboy
Вы и сейчас продолжаете те же нарушения. Например, полное цитирование сообщения модератора из предыдущего поста — точно такой же оверквотинг. А в ответах на предложения по кодам надо, во-первых, указывать ники людей, которым вы отвечаете (они вставляются в текст элементарно —кликом по нику в нужном сообщении), а во-вторых, не цитировать кусок кода (и, напротив, нормально обозначать чужую фразу, если она действительно нужна). А ещё при подготовке сообщения рекомендуется пользоватьяс режимом предварительного просмотра. Всё это приведено в норму, отвечать не надо.
Кроме того, будьте любезны ставить в конце фраз точки, чтобы люди не гадали, закончили вы мысль или отправили черновик сообщения случайно.
Вы и сейчас продолжаете те же нарушения. Например, полное цитирование сообщения модератора из предыдущего поста — точно такой же оверквотинг. А в ответах на предложения по кодам надо, во-первых, указывать ники людей, которым вы отвечаете (они вставляются в текст элементарно —кликом по нику в нужном сообщении), а во-вторых, не цитировать кусок кода (и, напротив, нормально обозначать чужую фразу, если она действительно нужна). А ещё при подготовке сообщения рекомендуется пользоватьяс режимом предварительного просмотра. Всё это приведено в норму, отвечать не надо.
Кроме того, будьте любезны ставить в конце фраз точки, чтобы люди не гадали, закончили вы мысль или отправили черновик сообщения случайно.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.