Hướng dẫn tạo Batch script xem danh sách tập tin trong một thư mục
Đôi khi trong quá trình tạo Batch script nhằm thực hiện một hành động nào đó mà cần có lệnh kiểm tra các tập tin trong một thư mục cụ thể chẳng hạn muốn xóa tập tin hoặc sử dụng lệnh remove và sau khi hành động xảy ra nó sẽ trả về lại lệnh kiểm tra tập tin trong thư mục hay xem lại danh sách trong thư mục còn tập tin mà ta đã xóa, remove hay không.
Cấu trúc của lệnh liệt kê tập tin trong thư mục có dạng sau:
dir /b đường dẫn tới thư mục
Ví dụ:
dir /b C:\Windows\servicing\Packages
Kết quả
Mẹo: Bạn có thể thay thế đường dẫn bằng các thuật ngữ viết gọn dưới đây
C: = %HOMEDRIVE% = %SystemDrive%
C:\Windows = %SystemRoot% = %windir%
C:\Program Files = %ProgramFiles% = %ProgramW6432%
C:\Program Files (x86) = %ProgramFiles(x86)%
C:\ProgramData = %ALLUSERSPROFILE% = %ProgramData%
C:\Users\User_Name\AppData\Roaming = %APPDATA%
C:\Program Files\Common Files = %CommonProgramFiles%
C:\Program Files (x86)\Common Files = %CommonProgramFiles(x86)%
C:\Program Files\Common Files =%CommonProgramW6432%
C:\Users\User_Name = %HOMEPATH%
C:\Users\User_Name\AppData\Local = %LOCALAPPDATA%
C:\Users\User_Name\AppData\Local\Temp = %TEMP%
C:\Users\User_Name = %USERPROFILE%
Computer Name = %COMPUTERNAME%
User Name = %USERNAME%
Như vậy với ví dụ ở trên ta có thể thay như sau:
dir /b %SystemRoot%\servicing\Packages
Bây giờ ta sẽ viết tập tin batch để khi chạy nó sẽ liệt kê danh sách các tập tin trong thư mục mà ta muốn tìm và để nhìn không đơn điệu như hình trên ta sẽ thêm số thứ tự đằng trước cho đẹp, Nội dung của tập tin batch như sau:
@echo off
title Packages
setlocal enabledelayedexpansion
set /a num=0
set path=%SystemRoot%\servicing\Packages
echo.ID Packages
echo.
for /f %%a in ('dir /b "%path%" ') do (
set /a num=num+1
echo.!num! %%a
)
echo.
pause
Lưu lại với tên ví dụ packages.bat định dạng All file và Encoding:ANSI. Khi chạy tập tin batch với quyền adminstrator sẽ cho ra hình dưới đây:
Để ý thấy với tập tin batch mới tạo nó sẽ liệt kê tất cả tập tin trong thư mục bây giờ tôi chỉ muốn tìm cụ thể các tập tin có tên Adobe, Cortana, PPIProjection tôi sẽ thêm tùy chọn ^| findstr /c: thay thế vào nội dụng tập tin batch như sau:
('dir /b "%path%" ^| findstr /c:Adobe /c:Cortana /c:PPIProjection ')
Kết quả nó sẽ ra như hình dưới đây:
Hoặc tôi chỉ chọn tìm kiếm những tập tin có đuôi cụ thể trong thư mục ví dụ như mum thì thay thế bằng
('dir /b "%path%" ^| findstr /c:mum ')
Kết quả sẽ chỉ liệt kê danh sách tập tin có đuôi .mum
Hi vọng bài viết sẽ giúp ích bạn.