Как заменить в файле TAB пути ...
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
[+] В скрипте ещё бэкслеши добавил для точности.alexfmos писал(а):заменить в нём PROJECTNAME на PROJECTNAME_2.
Если путь хочется писать с %COMMANDER_PATH%, то оба параметра можно ввести в поле "Команда:" через пробел после пути к скрипту.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Я так и делаю, вываливается ошибка.
Параметр
И я так и не понял что делает Ваш скрипт? Заменяет в текстовом файле Projectname на Projectname_2?
Тогда я могу сказать что это Вы не внимательно читали. Задача не заменить название на такое же с цифрой два, т.к. Projectname это просто пример, названия разные. Задача, чтоб при нажатии на файл TAB открывались нужные папки, но только в зависмости от проекта.
Например есть проект Кафе. В нем папки maps, post, downloads и т.д.
Теперь есть новый проект , допустим Ресторан. И в нем тоже папки maps, post, downloads и т.д.
То есть в пути меняется только название проекта, а названия tab те же.
Итак, главная задача положить в папку проекта файл tab без названия проекта, а с переменной нечто вроде
Код: Выделить всё
Сценарий: F:\My doc\Projects\Cafe_Randr\1.vbs
Строка: 5
Символ: 40
Ошибка: Ввод данных за пределами файла
Код: 800A003E
Источник: Ошибка выполнения Microsoft VBScript
Код: Выделить всё
"f:\My doc\Projects\Cafe_Randr\Cafe2.tab" Cafe_RandrТогда я могу сказать что это Вы не внимательно читали. Задача не заменить название на такое же с цифрой два, т.к. Projectname это просто пример, названия разные. Задача, чтоб при нажатии на файл TAB открывались нужные папки, но только в зависмости от проекта.
Например есть проект Кафе. В нем папки maps, post, downloads и т.д.
Теперь есть новый проект , допустим Ресторан. И в нем тоже папки maps, post, downloads и т.д.
То есть в пути меняется только название проекта, а названия tab те же.
Итак, главная задача положить в папку проекта файл tab без названия проекта, а с переменной нечто вроде
Тогда в любом проекте, зайдя в корень и щелкнув по tab файлу, откроются все нужные вне вкладки.F:\My doc\Projects\%FILEFOLDER%\Maps\
Я же процитировал, что он делает.alexfmos писал(а):И я так и не понял что делает Ваш скрипт?
См. тут:alexfmos писал(а):Тогда я могу сказать что это Вы не внимательно читали.
Я подумал, что PROJECTNAME и есть переменная. Т.е. вместо неё и пишем имя активного каталога (одного из подкаталогов Projects).alexfmos писал(а):вместо PROJECTNAME_1-... написать какую то переменную, которая заменяла бы его на текущий каталог
Я привёл цитату с выделением, отвечая на вопрос. К цифре 2 это никакого отношения не имеет.alexfmos писал(а):Задача не заменить название на такое же с цифрой два
А файл tab откуда берётся?alexfmos писал(а):главная задача положить в папку проекта файл tab без названия проекта
Последний раз редактировалось Flasher Ср июн 03, 2015 21:16, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Файл tab я создал единожды. Дальше я например создаю новый проект. Автоматом в новом проекте "Ресторан" создается 10 подкаталогов. Туда же, рядом с этими подкаталогами, я бы положил копию этого tab файла. И так как путь в нём не содержит прямых путей, то он откроет эти подкаталоги именно из проекта "ресторан", а не из "кафе".
Нужен путь не постоянный, а относительный.
Например, я попробовал вместо пути написать
Тогда открываются эти вкладки, и при переходе на Maps там действительно Maps, но при переходе на downloads, там опять Maps 
Нужен путь не постоянный, а относительный.
Например, я попробовал вместо пути написать
Код: Выделить всё
.\maps
.\downloads
и т.д.Я не понимаю. Есть проект Кафе и соотв. папка. Мы в неё заходим, запускаем скрипт и смотрим на файл tab, в котором вместо PROJECTNAME в пути везде стоит Кафе. Что не так-то?
Да путь будет прямой, а не относительный. И что с того, если файл tab становится рабочим?
Что касается относительных путей, то они формируются без точки и бэкслеша спереди относительно каталога, в котором лежит tab-файл. Т.е. не .\maps, а maps\. Но этот вариант не пригоден для других типов запуска (например, с кнопки по OPENTABS), где нужно не добавлять к имеющимся, а заменять текущие вкладки.
Да путь будет прямой, а не относительный. И что с того, если файл tab становится рабочим?
Что касается относительных путей, то они формируются без точки и бэкслеша спереди относительно каталога, в котором лежит tab-файл. Т.е. не .\maps, а maps\. Но этот вариант не пригоден для других типов запуска (например, с кнопки по OPENTABS), где нужно не добавлять к имеющимся, а заменять текущие вкладки.
Последний раз редактировалось Flasher Ср июн 03, 2015 21:51, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Я уже дважды говорил о вываливающейся ошибке.
Сейчас вроде дело продвинулось. Видимо что-то я наконец делаю правильно. Вываливается
Но после этого вроде создается нужный файл. [/quote]
Сейчас вроде дело продвинулось. Видимо что-то я наконец делаю правильно. Вываливается
Код: Выделить всё
Сценарий: F:\My doc\Projects\Cafe_Randr\1.vbs
Строка: 7
Символ: 12
Ошибка: Не удается найти указанный файл.
Код: 80070002
Источник: (null)alexfmos
А ничего, что ошибка во всех 3-х случаях разная?
В последнем случае "Не удается найти указанный файл." прямо указывает на то, что tab-файл по указанному пути не существует. Я так и не получил полноценный ответ на п. 3 при ошибках. Можно код кнопки увидеть?
И раз такое дело, то в идеале как раз нужно было описать всю задачу автоматизации совместно с созданием структуры и указать на каталоги-получатели tab-файлов. Такой скрипт бы решал задачу полноценно? Или ещё есть какие-то константы/переменные в проектах?
А ничего, что ошибка во всех 3-х случаях разная?
В последнем случае "Не удается найти указанный файл." прямо указывает на то, что tab-файл по указанному пути не существует. Я так и не получил полноценный ответ на п. 3 при ошибках. Можно код кнопки увидеть?
И раз такое дело, то в идеале как раз нужно было описать всю задачу автоматизации совместно с созданием структуры и указать на каталоги-получатели tab-файлов. Такой скрипт бы решал задачу полноценно? Или ещё есть какие-то константы/переменные в проектах?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Параметр я писал, но теперь я хоть немного начал въезжать что происходит, поэтому изменил пути. Сейчас кнопка такая:
Команда
Параметр
Почему он не видит файл с tab, но при этом все таки берет с него инфу и создает новый файл tab как надо? То есть сейчас по сути все работает, только вываливается ошибка.
Команда
Код: Выделить всё
"F:\My doc\1.vbs" Код: Выделить всё
"f:\My doc\tabs.tab" filefolderКод: Выделить всё
Dim WSH : Set WSH = CreateObject("WScript.Shell")
CD = WSH.CurrentDirectory : Set A = WScript.Arguments
With CreateObject("Scripting.FileSystemObject")
If CD = .GetParentFolderName(A(0)) Then WScript.Quit
NF = CD & "\" & .GetFileName(A(0)) : .CreateTextFile(NF, True)._
Write Replace(.OpenTextFile(A(0)).ReadAll, "\" & A(1) & "\", "\" & .GetFileName(CD) & "\")
End With : WSH.Run """%COMMANDER_EXE%"" /O /S /L=""" & NF & """"Код: Выделить всё
Сценарий: F:\My doc\1.vbs
Строка: 7
Символ: 12
Ошибка: Не удается найти указанный файл.
Код: 80070002
Источник: (null)
Вообще не понимаю, к чему там 12 символ. Неужели на x64 такие проблемы могут быть.. А tab-файл ничем не открыт?
Что если 7-8 строки в таком виде прописать?Если ошибка выскочит, то прошу указать только строку и символ.
Что если 7-8 строки в таком виде прописать?
Код: Выделить всё
NF = CD & "\" & .GetFileName(A(0))
.CreateTextFile(NF, True).Write Replace(.OpenTextFile(A(0)).ReadAll, "\" & A(1) & "\", "\" & .GetFileName(CD) & "\")Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.