[英]Batch file dir command
好的,很抱歉,這個問題不會太笨拙,但是我不知道該如何為您提供信息,以便您能夠幫助我。 我需要編寫一個批處理文件才能執行多個任務。 這是我編寫的全部代碼:
@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%行,但僅顯示文件目錄。 我需要那個+文件大小。
(我希望我對我的需求足夠清楚。力求盡可能清晰,並提供所有可能需要的信息)
已編輯
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之間的一個數字)
你可以像這樣做
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是可選的,這只會使其看起來更好...
希望有幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.