2013-02-15 96 views
0

我遇到问题。我需要我的代码来列出大目录中的所有文本文件,并在每个全屏幕中暂停。我把它使用户能够输入被列在列表中的每个txt文件旁边而是/ p参数拒绝暂停列表中的号码...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的输出传送到findfind本身不会分页,只是输出与输入中匹配的任何内容。 dir本身无法在这种情况下进行分页,因为find会无法做出输入以进入下一页,因此您已经有效地禁用了分页。

尝试

dir | find | more 
+0

哇靠人这么简单,天才!太感谢了!!! – Gorgrak 2013-02-15 15:01:37