Como carregar arquivos de acordo com o prompt de comando Data Criada no Windows

2

No SQL Server usando xp_cmdshell, consegui carregar arquivos de acordo com Data de modificação usando um comando para, por exemplo,

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

Mas eu quero saber como carregar arquivos de acordo com Data de criação . Qualquer ajuda seria muito apreciada.

Uma pergunta foi feita no stackoverflow, mas ainda não foi respondida. Por favor, dê uma olhada no link para os detalhes Como carregar arquivos de acordo com o prompt de comando de Data de criação no Windows via xp_cmdshell do SQL Server

    
por kolunar 02.09.2015 / 15:43

1 resposta

0

Isso está enganando um pouco, porque envolve a compilação de um pequeno programa que ajuda a fazer isso. Envolve um pequeno programa c # simples, mas principalmente cmd.

O pensamento é, se apenas cmd incluiu um programa / comando que, quando dado um nome de arquivo, ele daria em uma linha, o caminho completo do arquivo e a data / hora de criação. Em seguida, em cmd, pode-se usar o comando cmd's, aplicando o comando (caminho do arquivo de exibição e data / hora da criação) a todos os arquivos. Então eu escrevi um pequeno programa que pode pegar um nome de arquivo e mostrar seu caminho completo e data / hora de criação. E então eu uso em cmd.

O programa ..

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>

Compilando

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>

para que crie a.exe

a.exe é um pequeno programa que, ao passar um nome de arquivo como parâmetro, fornece o caminho completo e a data / hora de criação

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

C:\blah>

O resto é cmd

Se você não tiver um compilador C #

Eu incluí um link aqui para a.cs (o código fonte acima) a.exe e como o chrome tenta bloquear qualquer exe, você pode baixar a.ex2 e renomeá-lo. Ou quando o Chrome tentar bloquear o exe, diga "ignorar" e vá para downloads no chrome e diga "recuperar arquivo". Mas, no entanto, você quer fazer isso, você pode obter esse EXE. Talvez o visual studio express (como uma pequena versão gratuita do visual studio) tenha o csc.exe permitindo compilar, se você quiser fazer dessa maneira.

link

Depois de ter esse pequeno programa, você pode fazer isso em 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

Então, o que você pode fazer é fazer esse comando, mas descartá-lo em um arquivo

C:\blah>del mynewfile.a

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

C:\blah>

Então você pode usar o grep do find ou do gnuwin32

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

ou com o grep do gnuwin32

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>
    
por 02.09.2015 / 21:22