View previous topic :: View next topic |
Author |
Message |
Igor_Gurov
Joined: 14 Nov 2017 Posts: 2
|
(Separately) Posted: Tue Nov 14, 2017 17:02 Post subject: Автоматизация размножения файла под разным именем |
|
|
Не смог найти того что мне поможет, мб плохо искал. В скриптах я особо не разбираюсь поэтому не смог из разных собрать то что мне нужно.
структура того что мне нужно такова
000001(папка)
000001.xxx
mkp(папка)
есть файл нужно его раскопировать с определенной нумирацией(обычно это интервал например 000081-000120) и положить в папку с таким же именем а так же создать в этой папке еще папку с именем "mkp"
Возможно ли это сделать одним скриптом?
и вторая задача в этих папках mkp лежат файлы которые имеют имя all_00001.xxx возможно ли не открывая каждую папку переименовать их все заменив "all_" на "mkp_"? |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Tue Nov 14, 2017 21:46 Post subject: |
|
|
По второй задаче, даже скрипты не надо.
Поиск файлов, файлы на панель, или файлы без каталогов, инструмент группового переименования, создаёте задачу, и всё.
По первой задаче, я написал скрипт. Сохраняете его под именем "CopyToFolderCount.vbs".
Должен быть выделен файл под курсором.
Но вы не очень понятно объяснили задачу. Если не так надо, то уточните.
Command:
C:\Temp\CopyToFolderCount.vbs
Parameteres:
"%N"
Скрипт Code: |
'Первый параметр - %N
'------------------------------------------------------------------
If WScript.Arguments.Count = 0 Then MsgBox "Первый параметр должен" & _
" быть. " & VbCrLf & VbCrLf & "%N", vbOKOnly + vbError, "Not Parameters" : Wscript.Quit : End If
Dim sla, las, asl, lls, lsa, sls, ssl
Set fso = CreateObject("Scripting.FileSystemObject") : sla = WScript.Arguments(0)
Set lsa = fso.GetFile(sla) : las = InputBox("Input" & " Start", "Input " & "Start")
If Len(las) = 0 Or IsEmpty(las) Then Set fso = Nothing : Set lsa = Nothing : WScript.Quit
asl = InputBox("Input " & "End", "Input " & "End") : If Len(asl) = 0 Or IsEmpty(asl) Then Set fso = Nothing : Set lsa = Nothing : WScript.Quit : If InStrRev(sla, ".") > 0_
Then lls = Left(sla, InStrRev(sla, ".") - 1) : Else lls = sla : ssl = ""
For sls = las to asl : If Not fso.FileExists(sls & sla) Then : fso.CreateFolder sls & sla : fso.CreateFolder sls & _
sla & "\" & "mkp" : End If : lsa.Copy _
sls & sla & "\" : Next : Set fso = Nothing : Set lsa = Nothing : WScript.Quit
|
. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 15, 2017 07:10 Post subject: |
|
|
Zmy wrote: | Но вы не очень понятно объяснили задачу. | Не очень — это ещё мягко сказано.
Zmy wrote: | Parameteres:
"%N" | И будет: ""тут пробел.ext""
P.S.: "Первый параметр должен БЫТЬ." - Zmy ©
Ура, товарищи! _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Wed Nov 15, 2017 07:29 Post subject: |
|
|
Flasher, что вы хотите сказать? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 15, 2017 07:37 Post subject: |
|
|
Что тема шита белыми нитками. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Igor_Gurov
Joined: 14 Nov 2017 Posts: 2
|
(Separately) Posted: Wed Nov 15, 2017 08:55 Post subject: |
|
|
Извините я вполне мог объяснить непонятно.
Могу еще раз объяснить.
Файл, это файл проекта к определенной программе который очень долго создавать через саму программу.
Сама папка проекта называется так же как и проект и в этой же папке должна быть еще одна папка под названием mkp ну и сам файл.
Прошу извинить если изъясняю непонятно.
И наверно самый глупый вопрос на этом форуме будет как запускать эти скрипты я так и не дочитался до этого.
Last edited by Igor_Gurov on Wed Nov 15, 2017 14:31; edited 1 time in total |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Wed Nov 15, 2017 09:40 Post subject: |
|
|
Вот есть описание того, как это делается.
http://forum.wincmd.ru/viewtopic.php?t=14282
Своими словами скажу так.
Hidden text Термины могут не совпадать, в виду того, что есть разные русификаторы, но смысл должен быть понятен.
Правой кнопкой мыши по панели инструментов, выбираем "Редактировать".
Появляется окно свойств панели. Добавить кнопку. В поле "Команда" вставляем полный путь до скрипта.
Можно выбрать скрипт в диалоге. Для этого, справа от этого поля есть выпадающее меню. "Вставить имя файла".
Открывается диалог, находите этот скрипт, и выбираете его. Его имя с полным путём должно вставиться в поле "Команда".
Если в полном пути есть пробелы, то надо обязательно брать полный путь и имя в кавычки.
Разумно будет, вообще, не допускать пробелов в путях и именах.
В поле "Параметр" вводите "%N".
Поле "Путь" или "Папка" должно остаться незаполненным.
При желании, заполняете поля "Иконка" и "Подсказка".
И всё.
Наводите курсор на свой файл (выделяете его), и нажимаете эту кнопку, должен появиться диалог ввода.
Вводите диапазон от Start (число, с которого будет отсчитываться счётчик) до End (число, на котором закончится счётчик).
Если эти диалоги не появятся, значит что-то неправильно настроено.
. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 15, 2017 13:29 Post subject: |
|
|
Igor_Gurov wrote: | Извините я вполне мог объяснить непонятно. | Пунктуация в вашем тексте когда-нибудь появится? Не говоря уже про заглавные буквы. Диапазоны из головы берутся? Или алгоритм их получения таки имеется для работы с группой выделенных файлов?
Zmy
Энергию-то пожалейте. Памятка в переводе не нуждается, как и в поиске, впрочем.
Quote: | Термины могут не совпадать, в виду того, что есть разные русификаторы | О каких ещё терминах речь? Тем более, что памятка была согласована с переводчиком справки ТС.
Zmy wrote: | В поле "Параметр" вводите "%N". | Опять? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Wed Nov 15, 2017 14:01 Post subject: |
|
|
А что не в порядке с параметром? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 15, 2017 14:03 Post subject: |
|
|
Я же написал: Flasher wrote: | И будет: ""тут пробел.ext"" | В параметрах ставится знак вопроса спереди, курсор — на объект с наличием пробелов. В случае с %M иначе. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Wed Nov 15, 2017 14:11 Post subject: |
|
|
Без вопроса у меня прекрасно отрабатывает файлы с пробелом в имени. Хоть с кавычками, хоть без. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 15, 2017 14:21 Post subject: |
|
|
Code: | Set oFile = CreateObject("Scripting.FileSystemObject").GetFile(WSH.Arguments(0)) | + Code: | TOTALCMD#BAR#DATA
C:\Файл-объект_под_курсором.vbs
"%N"
WScript.exe,2
Файл-объект под курсором | Под курсором: C:\File Name.txt
Результат: Quote: | Строка: 1
Символ: 1
Ошибка: Файл не найден
Код: 800A0035
Источник: Ошибка выполнения Microsoft VBScript | Иначе и быть не может, т. к. кавычки (запретные, кстати) передаются как часть имени. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Wed Nov 15, 2017 14:29 Post subject: |
|
|
Вот так попробуйте.
Code: | msgBox CreateObject("Scripting.FileSystemObject").GetFile(WSH.Arguments(0)) |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 15, 2017 14:33 Post subject: |
|
|
Контекст не имеет значения. Важна правильная передача. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Wed Nov 15, 2017 14:35 Post subject: |
|
|
Работает? |
|
Back to top |
|
|
|