2013-02-15 4 views
0

У меня проблема. Мне нужен мой код для перечисления всех текстовых файлов в большом каталоге и паузы на каждом полноэкранном режиме. Я поставил его так, что пользователи будут иметь возможность ввести номер, который указан рядом с каждым текстовым файлом в списке, но параметр/р отказывается приостановить список ...DIR/p пауза не работает ...?

DIR SAVES\*.txt /B /P |FIND /V /N "//" 
ECHO. 
ECHO (Press "Q" to EXIT to the main menu) 
ECHO. 
CHOICE /C DLVQ /N /M "Would you like to DELETE, LOAD, or VIEW a file [D/L/V]?" 
    IF ERRORLEVEL 4 GOTO MENU 
    IF ERRORLEVEL 3 GOTO VIEW 
    IF ERRORLEVEL 2 GOTO LOAD1 
    IF ERRORLEVEL 1 GOTO DELETE 

:DELETE 
ECHO. 
SET /P C=Choose the file number [#] to DELETE (and press ENTER): 
FOR /F "usebackq tokens=1,2* delims=[]" %%d IN (`DIR SAVES\*.txt /B ^|FIND /V /N "//"`) DO (
    IF /I !C! EQU q (GOTO MENU) 
    IF !C! EQU %%d (
     ECHO. 
     CHOICE /N /M "Are you sure you want to DELETE %%e [Y/N]?" 
      IF ERRORLEVEL 2 GOTO LOAD  
     DEL /Q "SAVES\%%e" 
     DEL /Q "SAVES\"%%~ne"_stats" 
     IF EXIST "SAVES\%%e" (
      IF EXIST "SAVES\"%%~ne"_stats" (
       GOTO DELETE1 

Папка потенциально может иметь сотни txt сохранить файлы, и мне нужно запустить этот скрипт в своем собственном окне cmd и приостановить, так как экран заполняется информацией. Запуск всей моей утилиты в качестве .bat означает, что для просмотра всех файлов нет ни одной полосы прокрутки. Как я могу сделать параметр паузы/P?

ответ

3

Вы подключаете выход dir к find. find сам не выполняет разбиение на страницы и просто выводит все, что соответствует во входных данных. dir сам не может делать разбиение на страницы в этом случае, потому что find не сможет выполнить ввод, чтобы перейти на следующую страницу, так что вы эффективно отключили разбивку на страницы.

Попробуйте

dir | find | more 
+0

Святое дерьмо человек так просто и гений !!! Бесконечно благодарен!!! – Gorgrak