Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вызов GUI для выбора папки (http://forum.oszone.net/showthread.php?t=207708)

vivera864864 27-05-2011 20:18 1683857

Вызов GUI для выбора папки
 
Подскажите скрипт чтобы выбрать папку через стандартый GUI и записать её имя в переменную
Как это:

И ещё подскажите без каких файлов он работать не будет?
Заранее спасибо

ferget 27-05-2011 20:42 1683868

Код:

@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
    set sPrevCP=%%i
    chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
    `@"%systemroot%\system32\mshta.exe" "about:<FORM><INPUT type='file' name='qq'></FORM><script>document.forms[0].elements[0].click();var F=document.forms[0].elements[0].value;try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(F)};catch (e){};close();</script>" ^
    1^|more`
) do set sFileName=%%i

chcp %sPrevCP% >nul

if defined sFileName (
    echo Выбран файл: [%sFileName%].
) else (
    echo Файл не был выбран.
)

endlocal
exit /b 0

здесь обсуждается как сделать без mshta.exe

http://forum.oszone.net/thread-207216.html

vivera864864 27-05-2011 21:52 1683884

ferget, Спасибо

А нет, не то надо ПАПКУ, а не файл((

А нет, не то надо ПАПКУ, а не файл((

ferget 27-05-2011 23:59 1683940

есть такое окно
Код:

@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
    set sPrevCP=%%i
    chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
    `@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
    1^|more`
) do set sFolderName=%%i

chcp %sPrevCP% >nul

if defined sFolderName (
    echo Выбрана папка: [%sFolderName%].
) else (
    echo Папка не была выбрана.
)

endlocal
exit /b 0


vivera864864 28-05-2011 05:26 1683989

ferget, Ну не то я хочу как на скине

ferget 28-05-2011 06:29 1683995

это окно не является стандартным, его сделали для µTorrent

vivera864864 28-05-2011 09:51 1684024

ferget, жалко :'(

ferget 28-05-2011 10:25 1684035

ну в принципе можно такое сделать на Powershell, но сложно

vivera864864 28-05-2011 11:31 1684065

ferget, это уже не так важно, теперь надо заставить работать в winpe 3.0

HFShak 10-12-2013 10:08 2269833

Цитата:

Цитата ferget
Код:

@echo off
setlocal
for /f "tokens=2 delims=:" %%i in ('chcp') do (
 set sPrevCP=%%i
 chcp 1251 >nul
)
for /f "usebackq delims=" %%i in (
 `@"%systemroot%\system32\mshta.exe" "about:<FORM><INPUT type='file' name='qq'></FORM><script>document.forms[0].elements[0].click();var F=document.forms[0].elements[0].value;try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(F)};catch (e){};close();</script>" ^
 1^|more`
) do set sFileName=%%i
chcp %sPrevCP% >nul
if defined sFileName (
 echo Выбран файл: [%sFileName%].
) else (
 echo Файл не был выбран.
)
endlocal
exit /b 0

здесь обсуждается как сделать без mshta.exe
http://forum.oszone.net/thread-207216.html »

Добрый день!
А как сделать так, чтобы выбирались только .txt файлы?


Время: 04:03.

Время: 04:03.
© OSzone.net 2001-