@echo off
:pasirinkimas
cls
echo Spauskite 1, jei norite pakeisti ekrano ir teksto spalva
echo Spauskite 2, jei norite isvesti i ekrana sistemos kintamuosius
echo Spauskite 3, jei norite ieskoti failu
echo Spauskite 4, jei norite baigti darba
set /p pasirinkimas= Iveskite psirinkima:
if %pasirinkimas% == 1 goto Spalvos
if %pasirinkimas% == 2 goto Kintamieji
if %pasirinkimas% == 3 goto Paieska
if %pasirinkimas% == 4 goto pabaiga
goto pasirinkimas
:Spalvos
echo 0 = Black A = Light Green
echo 1 = Blue B = Light Aqua
echo 2 = Green C = Light Red
echo 3 = Aqua D = Light Purple
echo 4 = Red E = Light Yellow
echo 5 = Purple F = Bright White
echo 6 = Yellow
echo 7 = White
echo 8 = Gray
echo 9 = Light Blue
set /p fonas= Pasirinkite fono spalva:
set /p tekstas= Pasirinkite teksto spalva:
color %fonas%%tekstas%
goto pasirinkimas
:Kintamieji
set
:loop
echo Ar norite testi darba (t/n)?:
set /p darbas=
if %darbas% == t goto pasirinkimas
if %darbas% == n goto pabaiga
goto loop
:paieska
echo iveskite ieskomo failo pavadinima:
set /p ieskau=
dir %ieskau%
pause>null
goto pasirinkimas
pause>null
:pabaiga
exit
所以我需要帮助第三个功能。搜索文件。虽然我已经开始了@echo,但是当我试图查找文件时,无论文件是否被找到,屏幕都会显示不需要的文本:
Volume in drive C has no label.
Volume Serial Number is DEB6-826F
Directory of "displays directory the batch file is in"
我需要的是:
1.如果批次找到我正在搜索的文件,它将显示文件大小(它会做+前两条不需要的行)
2.当它找不到我正在寻找的文件时,我需要批处理文件来显示我选择的信息
我如何实现这一目标?
就我有限的初学者知识而言,@ echo off应该已经处理了卷消息。 尝试使用 dir / b / s%ieskau%行更改 dir%ieskau%行,但仅显示文件目录。我需要+文件大小。
(我希望我能够清楚地知道我需要什么。试图尽可能清楚并提供可能需要的所有信息)
答案 0 :(得分:1)
<强>编辑强>
if exist "%ieskau%" (
dir /a-d "%ieskau%" 2>nul | findstr /r /c:"^ .*:\\.*" /c:"^ [ ]*[1-9]"
) else (
echo File not found
)
如果指定的文件存在,请检索信息,否则显示错误。
dir
输出由findstr
使用两个正则表达式(/r
)进行过滤:第一个将匹配带有文件夹名称的行(唯一以空格和包含字符串:\
),第二个将匹配具有文件大小的行(以两个或多个空格开头,后跟1到9之间的数字)
答案 1 :(得分:0)
你可以做类似的事情;
Cd C:\
if not exist "*%ieskau%*" goto none
dir /s /b "*%ieskau%*" >C:\myfile.txt
for /f "delims=" %%i in (text.txt) do set c=%%i
echo these are your files %c%
exit /b
:none
echo no file found.
exit /b
但你必须让它加载大约10秒(在搜索时)同时/ b是可选的,它只是让它看起来更好......
希望有所帮助...