 |
|
Выбор из списка с выводом на экран. Можно такое написать?
Здравствуйте Всем!!!! Подскажите как можно в бат файле прописать следующее:
1.Заходим на диск в сети.
2. Из множества папок выбрать нужную.
3. Записать к себе на диск.
(это мне необходимо для автоматизации установки программы. Но в зависимости от роли пользователя ему нужна для работы программы только 1 папка). Подробнее:
Чтобы во время выполнения бат файла выводилось на экран:
"Выберите нужную цифру".
И предлагалось список:
1 - ПапкаA
2 - ПапкаВ
3 - ПапкаС и т.д. список небольшой.
И я с экрана вводила цифру нужной мне папки. Например после вопроса ввожу цифру 2.
Тогда программа идет в "ПапкаВ" и оттуда берет файл и пишет его на диск пользователя.
Начало (если зайти удаленно на комп пользователя):
mkdir c:\АРМ - создаст на диске С папку АРМ
xcopy "c:\2" "c:\АРМ" /e/c/h/n/y/ где c:\2 - откуда берет и куда пишет: c:\АРМ
далее нужно зайти в сеть на сервер в указанную директорию и выбрать там папку нужную для пользователя, т.е. сделать то что я пыталась обяъснить выше.
Кто нибудь может помочь новичку!!!! ОЧЕНЬ ОЧЕНЬ нужна ПОМОЩЬ!!!
|
Цитата:
Цитата luda-chel
Чтобы во время выполнения бат файла выводилось на экран:
"Выберите нужную цифру".
И предлагалось список:
1 - ПапкаA
2 - ПапкаВ
3 - ПапкаС и т.д. список небольшой. »
|
Choice
|
luda-chel,
А еще можно воспользоваться поиском и найти вот такую тему
|
ну или вот то что написали Вам товарищи 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
|
Цитата:
Цитата 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""
.
|
Ух ты!!! Спасибо ВСЕМ))))!!! Всю информацию взяла! Буду пробовать. На работе не всегда удается интернет открыть. О результате отпишусь))))
|
Время: 09:40.
© OSzone.net 2001-