2011-09-11 27 views

Trả lời

2

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.

+0

Có bạn đoán nó tôi đang nói về cửa sổ Batch Tôi đoán rằng không có điều như vậy, nhưng nó không làm tổn thương để yêu cầu Dù sao cảm ơn :) – Ori

+0

Tuyệt đối ... powershell sẽ defo làm những gì bạn muốn mặc dù, và có thể được sử dụng thay cho tập tin batch. – shawty

1

Có trong findstr. Khám phá THIS

+1

chỉ tìm kiếm các tệp tìm kiếm bên trong các tệp cho một chuỗi đã cho, trong trường hợp này, tôi nghĩ rằng OP là trên biểu thức chính quy dòng lệnh. – shawty

+0

Và nếu bạn viết một đầu ra lệnh vào một tệp, bạn có thể tìm kiếm nó bằng 'findstr'. –

10

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].

+0

cảm ơn tuyệt vời, nó có thể là những gì tôi đang tìm kiếm – Ori

+1

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

Các vấn đề liên quan