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

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

Ответить
Настройки темы
CMD/BAT - [решено] Получить путь из папки

Пользователь


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

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


Изменения
Автор: Darkar25
Дата: 01-11-2018
Описание: ответ найден
Желательно на CMD но также принимаю варианты на VBS...
Как можно получить путь к папке в которой сейчас находится пользователь?и возможно ли это вообще?
К примеру батник каждую секунду чекает все процессы открытой папки и если путь папки соотвествует нужному то выводить True, иначе False...заранее спасибо за ответ..
UPD:Вот рабочий ответ если кому нужно
Код: Выделить весь код
Option Explicit

Dim objWebBrowser

For Each objWebBrowser In WScript.CreateObject("Shell.Application").Windows
	If InStr(1, TypeName(objWebBrowser.Document), "ShellFolderViewDual", vbTextCompare) > 0 Then
		WScript.Echo objWebBrowser.Document.Folder.self.Path
	End If
Next

WScript.Quit 0
Тема закрыта

Отправлено: 15:15, 30-10-2018

 

Ветеран


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

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


Цитата Darkar25:
или только там,где включено отображение пути в заголовке? »
Не интересовался.

Я же предпочитаю пользовать, например, WSH:
Код: Выделить весь код
Option Explicit

Dim objWebBrowser

For Each objWebBrowser In WScript.CreateObject("Shell.Application").Windows
	If InStr(1, TypeName(objWebBrowser.Document), "ShellFolderViewDual", vbTextCompare) > 0 Then
		WScript.Echo objWebBrowser.Document.Folder.self.Path
	End If
Next

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:04, 31-10-2018 | #11



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

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


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


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

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


alpap,
Цитата alpap:
серьезно?!
где же папка: "C:\papka" »
Рекомендую юзать хелп по командам, обычно там все детально описано
in:
Код: Выделить весь код
tasklist /fi "imagename eq explorer.exe" /v /fo:list
out:
Код: Выделить весь код
Имя образа:     explorer.exe
PID:            1112
Имя сессии:     Console
№ сеанса:       1
Память:         60*672 КБ
Состояние:      Running
Пользователь:   PRO\Amunrah
Время ЦП:       0:00:06
Заголовок окна: C:\Temp <- Вот она
Darkar25,
Цитата Darkar25:
а это будет работать везде или только там,где включено отображение пути в заголовке? »
Только если включить пути в заголовка и окна в отдельных процессах... хотя можно попробовать подрубить эти опции из батника же путем изменения нужных ключей реестра, но оговорюсь - это надо еще проверить

П.С. На мой взгляд вариант, который предложил Iska определенно лучше

Последний раз редактировалось Amunrah, 31-10-2018 в 06:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:52, 31-10-2018 | #12


Пользователь


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

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


Iska,я сейчас не за пк...приеду домой,протестирую,и если работает то закрою тему.на первый взгляд ваш вариант может работать...

Отправлено: 13:38, 31-10-2018 | #13


Ветеран


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

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


Цитата Amunrah:
Заголовок окна: C:\Temp <- Вот она »
ну а вытащить-то надо постараться еще:
Код: Выделить весь код
@echo off
for /f "tokens=2*" %%a in ('"tasklist /fi "imagename eq explorer.exe" /v /fo:list"') do set "ph=%%b"
echo %ph%
pause

Отправлено: 16:48, 31-10-2018 | #14


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


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

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


alpap,
Цитата alpap:
ну а вытащить-то надо постараться еще: »
Можно чуть проще поступить.
Код: Выделить весь код
@echo off
tasklist /fi "imagename eq explorer.exe" /v 2>nul|findstr /l "C:\Temp">nul
if %errorlevel% EQU 0 echo найдено
pause
Лучше через регулярку конечно, но, думаю, для примера сойдет

Отправлено: 18:42, 31-10-2018 | #15


Ветеран


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

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


Цитата Amunrah:
Можно чуть проще поступить »
Цитата Amunrah:
findstr /l "C:\Temp" »
думаю при известном (заданном) пути я и не стал бы так изгаляться - зачем искать то что имеется?

Отправлено: 18:49, 31-10-2018 | #16


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


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

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


Цитата alpap:
Цитата Amunrah:
Цитата:
Можно чуть проще поступить »
Цитата Amunrah:
Цитата:
findstr /l "C:\Temp" »
думаю при известном (заданном) пути я и не стал бы так изгаляться - зачем искать то что имеется? »
Но по условию путь известен, батник должен проверять открыт ли заданный каталог... к тому-же, как искать, то что не имеется? ))

Отправлено: 18:53, 31-10-2018 | #17


Ветеран


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

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


Цитата Amunrah:
как искать, то что не имеется? »
вариант:
просто открыта последняя среди сотни, какая не помню - нужен срочно путь
ну как я себе представляю и мой код именно и дает путь последней открытой папки

Отправлено: 19:06, 31-10-2018 | #18


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


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

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


Цитата alpap:
вариант: просто открыта последняя среди сотни, какая не помню - нужен срочно путь
ну как я себе представляю и мой код именно и дает путь последней открытой папки »
Я подразумевал контекст вопроса, а вы решаете задачу, не относящуюся к данной теме... не вижу смысла спорить. Но да, узнать заголовок последнего открытого каталога можно через цикл.

Последний раз редактировалось Amunrah, 31-10-2018 в 23:31.


Отправлено: 19:11, 31-10-2018 | #19


Пользователь


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

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


Цитата Iska:
Option Explicit
Dim objWebBrowser
For Each objWebBrowser In WScript.CreateObject("Shell.Application").Windows
If InStr(1, TypeName(objWebBrowser.Document), "ShellFolderViewDual", vbTextCompare) > 0 Then
WScript.Echo objWebBrowser.Document.Folder.self.Path
End If
Next
WScript.Quit 0 »
я извиняюсь за такой тупой вопрос,но...как это юзать?)))я так понимаю нужен файл name.wsh и туда этот скрипт...но мне пишет что сценарий не указан

Отправлено: 04:54, 01-11-2018 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как получить(узнать) путь откуда взята текущая обоина? Dark Ange1 AutoIt 9 03-12-2017 13:24
CMD/BAT - [решено] Получить название папки из пути Mad Max Скриптовые языки администрирования Windows 5 29-01-2015 22:53
CMD/BAT - как получить путь из ярлыка ? mitiya Скриптовые языки администрирования Windows 2 08-07-2009 15:09
CMD/BAT - [решено] Как получить путь к профилю другого пользователя ? mitiya Скриптовые языки администрирования Windows 6 27-04-2009 03:18
(solved)Как получить переменную, содержащую путь к директории Documents and Settings? arial Автоматическая установка Windows 2000/XP/2003 12 15-11-2005 15:58




 
Переход