Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Как подняться на 2 уровня вверх?

Ответить
Настройки темы
VBS/WSH/JS - [решено] Как подняться на 2 уровня вверх?

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: 10minutes
Дата: 29-01-2015
Здравствуйте!
Есть скрипт, который лежит тут:
Код: Выделить весь код
C:\Users\user\Desktop\FOLDER01\ZOOM0001\1.vbs
Содержание скрипта:
Код: Выделить весь код
set oShell = createobject("wscript.shell")
wscript.echo oShell.currentdirectory
Нужно, чтобы эхо выдавало:
Код: Выделить весь код
C:\Users\user\Desktop
Оно выдает:
Код: Выделить весь код
C:\Users\user\Desktop\FOLDER01\ZOOM0001
СurrentDirectory не менять. СurrentDirectory должен быть C:\Users\user\Desktop\FOLDER01\ZOOM0001
Если бы был CMD/BAT там есть команда на 1-ну вверх "cd ..", на 2-е вверх "cd ...". Тут это не работает....
Помогите.

Отправлено: 19:33, 29-01-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 10minutes:
СurrentDirectory должен быть C:\Users\user\Desktop\FOLDER01\ZOOM0001 »
10minutes, текущий каталог для исполняющего скрипты процесса «wscript.exe»/«cscript.exe» необязательно будет совпадать с каталогом, в котором находится скрипт. На это категорически нельзя закладываться. Если уж действительно нужен каталог, в котором находится скрипт, то нужно действовать так:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim objFSO


Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

WScript.Echo objFSO.GetParentFolderName(WScript.ScriptFullName)

Set objFSO = Nothing

WScript.Quit 0

(вероятно, не сработает в случае исполнения скрипта непосредственно в памяти, например, посредством WshRemote). И никак не WshShell.CurrentDirectory.

Так что определитесь: если Вам действительно нужен текущий каталог — тогда, да, WshShell.CurrentDirectory. Если нужен каталог, в котором находится файл скрипта — тогда так, как я показал выше.

Цитата 10minutes:
Тут это не работает.... »
Работает. Причём точно так же. Для путей внутри скрипта WSH действуют всё те же самые правила относительных путей. Т.е., подняться на два уровня вверх от пути, по которому находится скрипт можно так (если, конечно, есть куда подыматься по дереву каталогов):
Код: Выделить весь код
WScript.Echo objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), "..\..")
Также дополнительно можно развернуть относительный путь в абсолютный:
Код: Выделить весь код
WScript.Echo objFSO.GetAbsolutePathName(objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), "..\.."))
Последний вариант является наиболее корректным в Вашем случае.

Ещё один вариант — ссылками:
Код: Выделить весь код
WScript.Echo objFSO.GetFile(WScript.ScriptFullName).ParentFolder.ParentFolder.ParentFolder.Path
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:46, 29-01-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Теперь разобрался! Iska, спасибо за помощь!

Отправлено: 20:50, 29-01-2015 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Как подняться на 2 уровня вверх?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Кнопка "Подняться на уровень вверх" 65000od Microsoft Windows 7 36 04-07-2012 08:53
камера на ноутбуке вверх ногами. boogi Хочу все знать 13 10-07-2010 17:58
Разное - стрелка перехода на каталог вверх kva.leon Оформление Windows XP 5 21-05-2009 01:10
Интерфейс - [решено] Как переместить панель задач вверх? Котяра Microsoft Windows 2000/XP 0 20-11-2008 18:02
Как в Паскале ?.0 сделать, чтоп по нажатии стрелки вверх deathman Программирование и базы данных 2 26-03-2003 23:55




 
Переход