我遇到了问题。我需要我的代码列出一个大目录中的所有文本文件,并在每个完整的屏幕上暂停。我进行了设置,以便用户能够输入列表中每个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暂停参数有效?
答案 0 :(得分:3)
您正在将dir
的输出汇总到find
。 find
本身不进行分页,只输出输入中匹配的任何内容。在这种情况下,dir本身无法进行分页,因为find无法进行输入以进入下一页,因此您已经有效地禁用了分页。
尝试
dir | find | more