2012-06-26 69 views
9

Tôi đang tìm lệnh lệnh cmd trong Windows XP, như "dir/b/s" bao gồm giá trị ngày và thời gian cho mỗi tệp trong kết quả. Tất cả dữ liệu - đường dẫn, tên tệp và ngày/giờ - cần phải nằm trên một dòng. Bất cứ ai có thể cung cấp một lệnh để thực hiện điều này? Cảm ơn bạn.cmd dir/b/s cộng với ngày

Trả lời

1

Không có cách nào trực tiếp để thực hiện việc này bằng DIR. Bạn sẽ cần phải viết một wrapper mà tước các chi tiết không liên quan từ DIR/s

Bạn có thể sử dụng hoặc PowerShell, VBScript hoặc javascript để làm điều này.

Đây là câu trả lời có liên quan khi sử dụng PowerShell: How to retrieve a recursive directory and file list from PowerShell excluding some files and folders? mặc dù bạn sẽ cần phải sửa đổi điều này để thêm ngày/giờ.

UPDATE: Đây là một trang web MAD liệt kê một thư mục đi bộ đệ quy trong vô số ngôn ngữ khác nhau: http://rosettacode.org/wiki/Walk_a_directory/Recursively

12

Nếu bạn muốn tập tin chỉ

for /r %F in (*) do @echo %~tF %F 

Nếu bạn muốn cả hai tập tin và thư mục sau đó sử dụng lệnh DIR với FOR/F

for /f "eol=: delims=" %F in ('dir /b /s') do @echo %~tF %F 

Nếu sử dụng trong một tập tin thực thi sau đó %F%~tF mus t đổi thành %%F%%~tF.

+0

này đáp ứng nhu cầu của tôi một cách hoàn hảo. Cảm ơn bạn. – user1483922

+2

@ user1483922 - Khi bạn nhận được câu trả lời đáp ứng hoàn hảo nhu cầu của mình, bạn nên chấp nhận câu trả lời đó bằng cách nhấp vào dấu kiểm ở gần góc trên bên trái của câu trả lời. Chấp nhận câu trả lời cho phép người khác biết câu hỏi đã được trả lời, nó cho bạn 2 điểm để dành thời gian chấp nhận câu trả lời và giải thưởng cho người đã đăng câu trả lời 15 điểm. – dbenham

0

Làm thế nào về một cái gì đó như thế này:

for /f "tokens=*" %a in ('dir *.* /a:d /b /s') do for /f "skip=5 tokens=1,2,3,4*" %b in ('dir *.* /a:-d') do @if %e neq bytes @echo %a\%e%f %b %c 

Simples, mặc dù tôi có thể phức tạp một chút :-)