View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 09, 2014 13:25 Post subject: |
|
|
job.forme wrote: | а вот такой вариант | уже есть. Поиском пользоваться умеем? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
job.forme
Joined: 08 Aug 2014 Posts: 17
|
(Separately) Posted: Sat Aug 09, 2014 14:47 Post subject: |
|
|
Flasher, ага спасибо, я первый день на форуме, ооооочень большой)) сегодня утром нашел указанную Вами тему. Попробовал - и вот вопрос - как сделать, что бы создавалось в ТЕКУЩЕЙ (активной) панели? И вариант с последующим открытием тоже интересен, как я понял остался недосказанным... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 09, 2014 15:49 Post subject: |
|
|
job.forme
Всё там досказано. Параметры все указаны. Если есть по ним вопросы, то в указанной теме и надо спрашивать. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
UFO_hA
Joined: 28 Feb 2015 Posts: 2
|
(Separately) Posted: Sat Feb 28, 2015 21:14 Post subject: Доброе время суток. |
|
|
Очень нуждаюсь в помощи. Срочно нужен скрипт. Задача: Есть папка с большим количеством фото. Необходимо их отсортировать следующим способом. Выделяются нужные картинки, и при нажатии на кнопку создаётся новая папка(в той же папке где лежат фото) и в эту папку перемещаются выделенные ранее фото. Требований к названием папок нет(ну разве только что бы названия не повторялись.). |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Sat Feb 28, 2015 21:38 Post subject: |
|
|
UFO_hA
Не говоря уже про поиск по форуму, хотя бы текущую тему от конца предыдущей страницы и дальше (то есть последний запрос и его обсуждение) прочитать можно было? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
UFO_hA
Joined: 28 Feb 2015 Posts: 2
|
(Separately) Posted: Sat Feb 28, 2015 22:04 Post subject: |
|
|
Уважаемый Avada. Я вас очень прошу, ткните пальцем. Всё что я здесь пока прочитал не подходит. А времени свободного просто нет. Буду очень благодарен. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Feb 28, 2015 22:20 Post subject: |
|
|
UFO_hA wrote: | Всё что я здесь пока прочитал не подходит. А времени свободного просто нет. | Прочесть последний пост на предыщущей странице, а потом последующие уже на этой - это проблема, на это нужно много времени? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Badboy
Joined: 20 Mar 2017 Posts: 2
|
(Separately) Posted: Mon Mar 20, 2017 03:15 Post subject: По части имени файла |
|
|
Подскажите пожалуйста, как изменить этот скрипт, чтобы он создавал папки по ЧАСТИ имени файла, а не по всему имени файла.
Пример:
Есть файл: 2016.01.01.(14-01-16).jpg
Нужно создать папку (2016.01.01) по первым 10 символам, и поместить туда все файлы, начинающиеся на эти 10 символов |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2624
|
(Separately) Posted: Mon Mar 20, 2017 10:44 Post subject: |
|
|
Badboy
Можно обойтись без скрипта, с помощью группового переименования.
Выделить файлы -> (Ctrl+M) -> Маска для: имени файла [N1-10]\[N] -> Выполнить. |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Mon Mar 20, 2017 10:54 Post subject: |
|
|
Попробуйте так.
Code: | ' Создание папки по имени файла и перемещение в нее файла
' Может быть выделено несколько файлов
' Для создания папок в текущей панели
' в параметрах вызова из 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
|
Last edited by Zmy on Sun Mar 26, 2017 08:15; edited 2 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 20, 2017 15:16 Post subject: |
|
|
Badboy
Без оверквотинга никак? Снизу памятки в первом пункте что написано?
Сам могу такую вещь предложить (в примерах 2 варианта решения):
Code: | '================================== 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 | Если имя файла не соответствует искомой в выражении части, то он остаётся на месте. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Mon Mar 20, 2017 16:39; edited 1 time in total |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 20, 2017 16:30 Post subject: |
|
|
Badboy wrote: | Подскажите пожалуйста, как изменить этот скрипт, чтобы он создавал папки по ЧАСТИ имени файла, а не по всему имени файла.
Пример:
Есть файл: 2016.01.01.(14-01-16).jpg
Нужно создать папку (2016.01.01) по первым 10 символам, и поместить туда все файлы, начинающиеся на эти 10 символов |
Изменить Code: | If WScript.Arguments.Count > 1 Then
NewFilePath = WScript.Arguments(1) & FileName
Else
NewFilePath = FilePath & "\" & FileName
End If | на Code: | If WScript.Arguments.Count > 1 Then
NewFilePath = WScript.Arguments(1) & Left(FileName, 10)
Else
NewFilePath = FilePath & "\" & Left(FileName, 10)
End If |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Mon Mar 20, 2017 18:15 Post subject: |
|
|
Badboy
Замечание за оверквотинг. Код исходного скрипта заменён ссылкой. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Badboy
Joined: 20 Mar 2017 Posts: 2
|
(Separately) Posted: Mon Mar 20, 2017 22:18 Post subject: |
|
|
Avada
Прошу прощения, больше не буду
Batya
Огромное спасибо!
То что надо!
Flasher
Спасибо!
Попробую |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 21, 2017 00:44 Post subject: |
|
|
Badboy
Вы и сейчас продолжаете те же нарушения. Например, полное цитирование сообщения модератора из предыдущего поста — точно такой же оверквотинг. А в ответах на предложения по кодам надо, во-первых, указывать ники людей, которым вы отвечаете (они вставляются в текст элементарно —кликом по нику в нужном сообщении), а во-вторых, не цитировать кусок кода (и, напротив, нормально обозначать чужую фразу, если она действительно нужна). А ещё при подготовке сообщения рекомендуется пользоватьяс режимом предварительного просмотра. Всё это приведено в норму, отвечать не надо.
Кроме того, будьте любезны ставить в конце фраз точки, чтобы люди не гадали, закончили вы мысль или отправили черновик сообщения случайно. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
|