Cách tải tệp theo Ngày tạo trong dấu nhắc lệnh của Windows


2

Trong SQL Server bằng xp_cmdshell, tôi có thể tải các tệp theo ngày Sửa đổi bằng cách sử dụng lệnh, ví dụ:

z: & forfiles /m *.jpg /s /d 07/16/2015 /c “cmd /c echo @fdate @ftime @path”

Nhưng tôi muốn biết cách tải tập tin theo Ngày tạo . Bất kỳ trợ giúp sẽ được rất đánh giá cao.

Một câu hỏi đã được hỏi trên stackoverflow nhưng chưa có câu trả lời. Vui lòng xem liên kết để biết chi tiết Cách tải tệp theo Ngày tạo trong dấu nhắc lệnh của Windows qua xp_cmdshell của SQL Server


Tôi không quen thuộc với các forfiles và dòng đó có vẻ không đơn giản và tôi có thể hiểu nhầm câu hỏi của bạn và điều này có thể không liên quan nhưng làm thế nào về việc dir /?hiển thị dir /t:cthời gian tạo
barlop

Cảm ơn @barlop, xin lỗi vì câu hỏi của tôi không đủ rõ ràng, thực sự tôi muốn tải tất cả các tên tệp có phần mở rộng ".jpg" bao gồm cả ngày đã tạo và đường dẫn thư mục đầy đủ sẽ được lưu trữ trong một bảng. Một kết quả ví dụ sẽ giống như8/18/2015 11:13:08 AM "Z:\LDB1 App Export\Top Star_Aluminium Frames & Furniture (B)-31267.jpg"
kolunar

Tôi hiểu ý bạn là gì. Tôi chỉ thử nghiệm điều này for /f "eol=: delims=" %F in ('dir /b /s') do @echo %~ftzaF nhưng nó không hoạt động. % TF không hiển thị thời gian tạo .. ngay cả với / t: c trên thư mục. Vì vậy, tôi không chắc chắn.
barlop

nếu bạn có trình biên dịch ac sharp, bạn có thể biên dịch pastebin.com/raw.php?i=6fGPGDBc này thì nó sẽ chạy như pastebin.com/raw.php?i=eJV8zYcd để bạn có thể sử dụng chương trình nhỏ đó để trợ giúp để làm những gì bạn muốn ... mặc dù nó gian lận một chút.
barlop

điều này đi xa hơn để nó sử dụng chương trình nhỏ đó để chạy nó trên tất cả các tệp txt mà bạn có thể thay đổi txt thành jpg pastebin.com/8U0GWP0j Vì vậy, liệt kê tất cả các tệp và thời gian tạo của chúng. Bạn có thể đặt đầu ra đó trong một tệp và gõ tệp | tìm "02/06/2010" hoặc bất cứ ngày nào bạn muốn
barlop

Câu trả lời:


0

Điều này là gian lận một chút, bởi vì nó liên quan đến việc bạn biên dịch một chương trình nhỏ giúp thực hiện điều này. Nó bao gồm một chương trình c # đơn giản nhưng chủ yếu là cmd.

Suy nghĩ là, nếu chỉ cmd bao gồm một chương trình / lệnh mà khi được đặt tên tệp, nó sẽ cung cấp cho một dòng, đường dẫn đầy đủ của tệp và ngày / giờ tạo. Sau đó, trong cmd, người ta có thể sử dụng lệnh của cmd, áp dụng lệnh đó (hiển thị đường dẫn và ngày / thời gian tạo tệp) cho mỗi tệp. Vì vậy, tôi đã viết một chương trình nhỏ có thể lấy tên tệp và hiển thị đầy đủ đường dẫn và ngày / giờ tạo. Và sau đó tôi sử dụng nó trong cmd.

Chương trình..

C:\blah>type a.cs
using System.IO;

class asdf
{

 public static void Main(string[] args) {
    if(args.Length==0) {
         System.Console.WriteLine("Pass a filename");
         return;
     }
    System.IO.FileInfo fileInfo = new FileInfo(args[0]);
    System.Console.Write(fileInfo.FullName+"      ");

     System.DateTime creationTime = fileInfo.CreationTime;
    System.Console.WriteLine("cdt "+creationTime);

     }


}
C:\blah>

Biên dịch nó

C:\blah>csc a.cs
Microsoft (R) Visual C# Compiler version 4.0.30319.18408
for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.


C:\blah>

để tạo ra a.exe

a.exe là một chương trình nhỏ mà khi truyền tên tệp làm tham số, sẽ cung cấp đầy đủ đường dẫn và ngày / giờ tạo

C:\blah>a.exe w.obj<ENTER>
C:\blah\w.obj      cdt 25/07/2015 1:03:52 AM

C:\blah>

Phần còn lại là cmd

Nếu bạn không có trình biên dịch C #

Tôi đã bao gồm một liên kết ở đây để a.cs (mã nguồn ở trên) a.exe và vì chrome cố gắng chặn bất kỳ exe nào, bạn có thể tải xuống a.ex2 và đổi tên nó. Hoặc khi Chrome cố gắng chặn exe, sau đó nói "bỏ qua" và đi đến tải xuống trong chrome và nói tệp khôi phục. Nhưng tuy nhiên bạn muốn làm điều đó, bạn có thể có được EXE đó. Có thể visual studio express (như một phiên bản nhỏ của visual studio miễn phí) sẽ có csc.exe cho phép bạn biên dịch nó, nếu bạn muốn làm theo cách đó.

http://ge.tt/2LdAiGN2

Một khi bạn có chương trình nhỏ đó thì bạn có thể làm điều này trong cmd

c:\blah>for /r %f in (*.jpg) do @a.exe %f
c:\blah\a.jpg      cdt 31/07/2015 3:55:40 PM
c:\blah\a10.jpg      cdt 3/11/2013 8:19:07 AM
c:\blah\a11.jpg      cdt 3/11/2013 8:19:16 AM
c:\blah\a12.jpg      cdt 3/11/2013 8:48:45 AM
C:\blah\dff\Calendar.jpg      cdt 25/08/2009 3:00:02 AM
C:\blah\dff\CheckDST.jpg      cdt 28/07/2005 2:00:02 AM

Vì vậy, những gì bạn có thể làm, là thực hiện lệnh đó nhưng đổ vào một tập tin

C:\blah>del mynewfile.a

C:\blah>for /r %f in (*.jpg) do @a.exe %f >>mynewfile.a

C:\blah>

Sau đó, bạn có thể sử dụng find hoặc grepwin32's grep

C:\blah>find "22/05/2015" mynewfile.a

---------- MYNEWFILE.A
C:\blah\sdff\a.jpg      cdt 22/05/2015 5:54:53 AM
C:\blah\sdff\a2.jpg      cdt 22/05/2015 6:20:40 AM
C:\blah\sdff\b.jpg      cdt 22/05/2015 5:56:12 AM

hoặc với grepwin32's grep

C:\blah>grep "22/05/2015" mynewfile.a
C:\blah\sdff\a.jpg      cdt 22/05/2015 5:54:53 AM
C:\blah\sdff\a2.jpg      cdt 22/05/2015 6:20:40 AM
C:\blah\sdff\b.jpg      cdt 22/05/2015 5:56:12 AM

C:\blah>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.