此批处理脚本可以更好地搜索文件
使用“find”它只是普通...并且需要输入文件名“file 1.txt”“file2.txt”“file letter.txt”
正好是文件夹位置......
任何其他方式?
尝试输入“file”
显示名为“file”的所有文件
“file 1.txt” “FILE2.TXT” “file letter.txt”
并且有号码 1。 “file 1.txt” 2。 “FILE2.TXT” 3。 “file letter.txt”
并输入数字以选择我们想要的文件... 它将是开放的。
@echo off
setlocal EnableDelayedExpansion
if exist log del log
set "token=%~1"
if not defined token (
echo Search for what string?
set /p token=^>
echo.
)
set a=0
for /f "delims=" %%A in ('dir /b ^| find "%token%"') do (
set /a a+=1
echo !a!. %%A
echo !a!. %%A >>log
)
echo.
echo Enter number of file to open.
set /p op=^>
for /f "tokens=1,2 delims=." %%A in (log) do (
if %%A EQU %op% start %%B
)
del log
问题是
当输入数字...批处理otomatic close ...文件不会打开...
任何建议?
答案 0 :(得分:2)
@echo off &setlocal
set /p "spat=Enter search pattern: "
for /f "tokens=1*delims=:" %%a in ('dir /b /s /a-d \%spat%*.txt 2^>nul^|findstr /ri "%spat%[^a-z]"^|findstr /rn $') do set "$%%a=%%~b"&set /a fcnt+=1
if not defined fcnt (echo Error! Not such file "%spat%".&goto:eof)
:loop
for /f "tokens=1*delims==$" %%a in ('set "$" 2^>nul') do echo %%a.%%~b
set /p "fno=Enter file number to run: "
echo %fno%|findstr "[1-9][0-9]*" >nul || (echo Error! Try again.&goto:loop)
if %fno% gtr %fcnt% (echo Error! Enter number between 1-%fcnt%. Try again.&goto:loop)
for /f "tokens=1*delims==$" %%a in ('set "$%fno%"') do "%%~b"