DIR / p暂停不起作用......?

时间:2013-02-15 14:34:42

标签: batch-file dir

我遇到了问题。我需要我的代码列出一个大目录中的所有文本文件,并在每个完整的屏幕上暂停。我进行了设置,以便用户能够输入列表中每个txt文件旁边列出的数字,但/ 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暂停参数有效?

1 个答案:

答案 0 :(得分:3)

您正在将dir的输出汇总到findfind本身不进行分页,只输出输入中匹配的任何内容。在这种情况下,dir本身无法进行分页,因为find无法进行输入以进入下一页,因此您已经有效地禁用了分页。

尝试

dir | find | more