Tôi muốn ví dụ về tệp lô sử dụng biểu thức chính quy để tìm tệp có chữ số trong tên hoặc một dải số nhất định.Biểu thức chính quy của tệp hàng loạt để tìm tệp bằng một chữ số có tên
Có cách nào để thực hiện việc này không? Một ví dụ đơn giản?
Tôi muốn ví dụ về tệp lô sử dụng biểu thức chính quy để tìm tệp có chữ số trong tên hoặc một dải số nhất định.Biểu thức chính quy của tệp hàng loạt để tìm tệp bằng một chữ số có tên
Có cách nào để thực hiện việc này không? Một ví dụ đơn giản?
Tôi giả định các tệp hàng loạt Command Prompt/MS-Dos của bạn ở đây?
Nếu bạn là sau đó buồn bã câu trả lời là KHÔNG, các ký tự đại diện CHỈ rằng đồng bằng cũ hỗ trợ các tập tin batch là:
* = match all
và ? = Phù hợp 1
vậy:
mytune*.mp?
sẽ phù hợp: tuy nhiên
mytune01.mp3, mytune01.mpg, mytune-the-best.mpe
Có một sự thay thế ...
Nếu bạn sử dụng một cửa sổ phiên bản hiện đại, sau đó rất có thể là bạn sẽ có cài đặt vỏ nguồn, nhấp vào
bắt đầu-> chạy rồi nhập vào trình bao bọc nguồn và báo chí trở lại, nếu bạn nhận được những gì trông giống như một cửa sổ dấu nhắc lệnh mở sau đó bạn có nó được cài đặt, Nếu không thì hãy nhìn vào trang web MS để tải về.
Khi bạn có điều này, nếu bạn muốn bổ nhào thẳng vào, bạn có thể tìm thấy tất cả các bạn cần trên Reg-cũ là PS ở đây:
http://powershell.com/cs/blogs/ebook/archive/2009/03/30/chapter-13-text-and-regular-expressions.aspx
tôi sẽ tuy nhiên, đề nghị dành một giờ hoặc lâu hơn học những điều cơ bản trước.
Một số khoản tín dụng này được chuyển đến câu trả lời của Y.A.P.
Đoạn mã dưới đây sẽ giúp bạn có được tất cả các tập tin trong thư mục có ít nhất một chữ số trong tên tập tin:
@Echo Off
CD C:\Folder\To\Process
Dir /B>Dir.temp
FindStr /R "[0-9]" "Dir.temp">FindStr.temp
Del Dir.temp
For /F "tokens=*" %%a In (FindStr.temp) Do Call :WorkIt "%%a"
Del FindStr.temp
Exit /B
:WorkIt
:: Insert code here. Use %1 to get the file name with quotes. For example:
Echo Processing %1...
Exit /B
Dòng FindStr
chứa biểu thức regex. Phiên bản dòng lệnh của regex bị giới hạn. Phạm vi chính xác của bạn là gì và định dạng tên tệp là gì?
Nếu, ví dụ, bạn biết tất cả các tệp có số có 3 chữ số trong chúng, bạn có thể giới hạn nó cho tất cả các mục từ 000 đến 299 với biểu thức [0-2][0-9][0-9]
.
cảm ơn tuyệt vời, nó có thể là những gì tôi đang tìm kiếm – Ori
Hi, người ta có thể loại bỏ các tập tin trung gian 'Dir.temp' bằng cách đường ống đầu ra của' dir/B' để 'findstr'. Như thế này 'dir/B | findstr/R "[0-9]"> FindStr.temp'. Nếu không, một bài đăng rất hay, đã giúp tôi rất nhiều. Chúc mừng! – Jagger
Phạm vi chính xác của bạn sau và định dạng tên tệp là gì? –