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

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

Ответить
Настройки темы
CMD/BAT - Вывести файлы из директории в меню choice

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


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

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


Здравствуйте, помогите пожалуйста, не могу разобраться. Как вывести файлы из директории в меню типа choice?

Отправлено: 05:21, 15-10-2014

 

Ветеран


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

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


Примерно так:



Код: Выделить весь код
@echo off

set "dir=D:\Test"

pushd "%dir%"

for /f "delims=" %%i in ('dir /a-d/b 2^>nul') do (
 set /a count+=1
 for /f %%j in ('set /a count') do (
  if %%j==10 (
   echo В контексте данного решения нельзя отобразить более 9 файлов.
   goto #
   )
  )
 call set $%%count%%=%%i
 call set list=%%list%%%%count%%
 )


:#

for /f "tokens=1* delims=$=" %%i in ('set $') do (
 echo %%j -- %%i
)
echo.

choice /c %list%

cls
for /f "tokens=1* delims=$=" %%i in ('set $') do (
 if %errorlevel%==%%i type "%%j"
 )

popd

pause>nul
exit /b


.



setdmg, в строке
Код: Выделить весь код
set "dir=D:\Test"
замените «D:\Test» на свою директорию и в строке
Код: Выделить весь код
 if %errorlevel%==%%i type "%%j"
замените «type "%%j"» на свою команду.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:03, 15-10-2014 | #2



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

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


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


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

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


благодарю

еще вопросик, как сделать после *if %errorlevel%==%%i type "%%j"* копирование файла имя которого такое-же как у выбранного но с другим расширением,
для точности батник для быстрой компиляции и копирования допустим выбираем компилировать text.sp на выходе получаем text.smx и собственно как перенести test.smx?
поиск по маске я знаю как сделать но как прикрутить это суда я не понимаю

Отправлено: 11:23, 15-10-2014 | #3


Ветеран


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

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


Код: Выделить весь код
@echo off

set "dir=D:\Test"
set "out=D:\Work"

pushd "%dir%"

(
for /f "delims=" %%i in ('dir /a-d/b 2^>nul') do (
 set /a count+=1
 for /f %%j in ('set /a count') do (
  if %%j==10 (
   call :#
   echo.
   goto #####
   )
  )
 call set $%%count%%=%%i
 call set list=%%list%%%%count%%
 )
)|| (
call :##
pause>nul
goto :eof
)
(
for /f "delims=." %%i in ('dir /a-d/b 2^>^&1 1^>nul') do (
 if not defined var (
  set var=%%i
  call :###
  set /p=""%%i""<nul
  ) else (
  for /f "delims=" %%j in ('call echo "%%var%%"') do (
   if not %%j=="%%i" (
    set /p="; "%%i"."<nul
    echo.
    echo.
    goto #####
    )
   )
  )
 )
)&& (
set /p=.<nul
echo.
echo.
)


:#####

for /f "tokens=1* delims=$=" %%i in ('set $') do (
 echo %%j -- %%i
)
echo.

choice /c %list%

cls
for /f "tokens=1* delims=$=" %%i in ('set $') do (
 if %errorlevel%==%%i (
  rem  В низлежащей строке вместо «cmd /c "type "%%j">"%%~nj.smx""» должна быть Ваша команда для компиляции файла "%%j" в файл "%%~nj.smx".
  start "" /wait cmd /c "type "%%j">"%%~nj.smx""
  md "%out%" 2>nul
  copy "%%~nj.smx" "%out%">nul&& (
  call :#### "%%~nj.smx" "%out%"
  )
  )
 )

popd

pause>nul
exit /b


:#

 chcp 1251>nul
 for /f "delims=" %%i in ("В контексте данного решения нельзя отобразить более 9 файлов.") do (
  chcp 866>nul
  echo %%i
  )

 exit /b


:##

 chcp 1251>nul
 for /f "delims=" %%i in ("В директории "%dir%" отсутствуют файлы.") do (
  chcp 866>nul
  echo %%i
  )

 exit /b


:###

 chcp 1251>nul
 for /f "delims=" %%i in ("Не все файлы могут быть отображены по причине(ам): ") do (
  chcp 866>nul
  set /p=%%i<nul
  )

 exit /b


:####

 chcp 1251>nul
 for /f "delims=" %%i in ("Файл %1 скопирован в директорию %2.") do (
  chcp 866>nul
  echo %%i
  )

 exit /b

Отправлено: 20:32, 15-10-2014 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Блог - Как открывать файлы из контекстного меню с полными правами Vadikan Microsoft Windows 7 0 20-07-2011 10:30
Блог - Как открывать файлы из контекстного меню в любой программе (Часть 1) Vadikan Microsoft Windows 7 0 18-07-2011 10:26
CMD/BAT - Как вывести одинаковые по содержанию файлы из заданных директорий? Lil Crazy Скриптовые языки администрирования Windows 5 23-05-2010 11:17
[решено] Вывести все файлы и папки morgan1991 AutoIt 6 18-03-2009 22:35
$OEM$ директории - не копируются файлы _Flame_ Автоматическая установка Windows 2000/XP/2003 5 19-06-2007 11:58




 
Переход