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

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

luda-chel 24-05-2014 20:26 2355303

Выбор из списка с выводом на экран. Можно такое написать?
 
Здравствуйте Всем!!!! Подскажите как можно в бат файле прописать следующее:
1.Заходим на диск в сети.
2. Из множества папок выбрать нужную.
3. Записать к себе на диск.
(это мне необходимо для автоматизации установки программы. Но в зависимости от роли пользователя ему нужна для работы программы только 1 папка). Подробнее:
Чтобы во время выполнения бат файла выводилось на экран:
"Выберите нужную цифру".
И предлагалось список:
1 - ПапкаA
2 - ПапкаВ
3 - ПапкаС и т.д. список небольшой.
И я с экрана вводила цифру нужной мне папки. Например после вопроса ввожу цифру 2.
Тогда программа идет в "ПапкаВ" и оттуда берет файл и пишет его на диск пользователя.
Начало (если зайти удаленно на комп пользователя):
mkdir c:\АРМ - создаст на диске С папку АРМ
xcopy "c:\2" "c:\АРМ" /e/c/h/n/y/ где c:\2 - откуда берет и куда пишет: c:\АРМ
далее нужно зайти в сеть на сервер в указанную директорию и выбрать там папку нужную для пользователя, т.е. сделать то что я пыталась обяъснить выше.
Кто нибудь может помочь новичку!!!! ОЧЕНЬ ОЧЕНЬ нужна ПОМОЩЬ!!!

Iska 25-05-2014 01:48 2355371

Цитата:

Цитата luda-chel
Чтобы во время выполнения бат файла выводилось на экран:
"Выберите нужную цифру".
И предлагалось список:
1 - ПапкаA
2 - ПапкаВ
3 - ПапкаС и т.д. список небольшой. »

Choice

ratibor79 25-05-2014 06:27 2355389

luda-chel,
А еще можно воспользоваться поиском и найти вот такую тему

firstarey 26-05-2014 08:15 2355788

ну или вот то что написали Вам товарищи Iska и ratibor79:

Код:

@Echo off
 
:m1
cls
Echo
‚лЎҐаЁвҐ Їа®Ја*¬¬г:
Echo.
Echo 1 - Џа®Ја*¬¬* 1
Echo 2 - Џа®Ја*¬¬* 2
Echo 3 - Џа®Ја*¬¬* 3
 
echo.
Set /p choice="‚*и ўлЎ®а: "
if not defined choice goto m1
if "%choice%"=="1" (
        echo ваш код
        echo ваш код
)
if "%choice%"=="2" (
        echo ваш код
        echo ваш код
)
if "%choice%"=="3"  (
        echo ваш код
        echo ваш код
)
Echo.
Echo ЌҐ Їа*ўЁ«м*® ᤥ«** ўлЎ®а §*¤**Ёп
Echo.
Echo.
goto m1
pause >nul

вот еще один интересный вариант - вызывает ОКНО выбора папки:

Код:

@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 Папка не была выбрана.
)
pause


Georgio 26-05-2014 13:46 2355874

Цитата:

Цитата luda-chel
И я с экрана вводила цифру нужной мне папки. Например после вопроса ввожу цифру 2.
Тогда программа идет в "ПапкаВ" и оттуда берет файл и пишет его на диск пользователя. »



Если этот файл в этих папках один, то можно так:

Код:

@echo off
:#
chcp 1251>nul
for %%i in (
 "1 - ПапкаA"
 "2 - ПапкаВ"
 "3 - ПапкаС"
) do (
 chcp 866>nul
 echo %%~i
 chcp 1251>nul
 for /f "tokens=1* delims=- " %%j in (%%i) do (
  set "%%j=copy "D:\%%k" "C:\some_folder""
 )
)
echo.
echo Enter the number of the folder.
echo.
set /p number=
for /l %%i in (1 1 3) do (
 if "%%i"=="%number%" (
  set flag=true
 )
)
if defined flag (
 cls
 setlocal enabledelayedexpansion
 !%number%!>nul&& (
 endlocal
 echo Done! Press any key to exit.
 )
) else (
 cls
 echo Error! Repeat!
 echo.
 goto:#
)
pause>nul
exit /b


Если в этих папках больше одного файла, но нужно копировать одноименные файлы, то замените строку
Код:

  set "%%j=copy "D:\%%k" "C:\some_folder""
на строку
Код:

  set "%%j=copy "D:\%%k\some_file" "C:\some_folder""
.

luda-chel 27-05-2014 17:48 2356375

Ух ты!!! Спасибо ВСЕМ))))!!! Всю информацию взяла! Буду пробовать. На работе не всегда удается интернет открыть. О результате отпишусь))))


Время: 09:40.

Время: 09:40.
© OSzone.net 2001-