Dosyaları Windows komut isteminde Oluşturma Tarihine göre yükleme


2

Xp_cmdshell kullanarak SQL Server'da, dosyaları göre Değiştirilme tarihi örneğin bir komut kullanarak,

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

Ancak dosyaları göre nasıl yükleneceğini bilmek istiyorum Oluşturma tarihi . Herhangi bir yardım çok takdir edilecektir.

Yığın akışında bir soru soruldu ancak henüz bir cevap yok. Lütfen ayrıntılar için linke bakınız. Windows komut isteminde Oluşturulan Tarih'e göre SQL Server xp_cmdshell ile dosyalar nasıl yüklenir


forfile aşina değilim ve bu satır basit görünmüyor ve muhtemelen sorunuzu yanlış anlıyorum ve bu alakalı olmayabilir ama dir /? gösterme dir /t:c bu yaratma zamanı
barlop

Thanks @barlop, sorumun yeterince net olmadığı için üzgünüm, aslında ".jpg" uzantılı tüm dosya adlarını, oluşturulan tarihler ve bir tabloda depolanacak tüm dizin yollarını içeren yüklemek istiyorum. Örnek bir sonuç şöyle bir şey olmalı 8/18/2015 11:13:08 AM "Z:\LDB1 App Export\Top Star_Aluminium Frames & Furniture (B)-31267.jpg"
kolunar

Ne demek istediğini anlıyorum. Bunu yeni test ettim for /f "eol=: delims=" %F in ('dir /b /s') do @echo %~ftzaF ama işe yaramadı. % TF oluşturma süresini göstermez. Bu yüzden emin değilim.
barlop

c keskin bir derleyiciniz varsa, bunu derleyebilirsiniz pastebin.com/raw.php?i=6fGPGDBc sonra gibi koşardı pastebin.com/raw.php?i=eJV8zYcd Böylece, bu küçük programı, istediğinizi yapma yolunda yardımcı olmak için kullanabilirsiniz.
barlop

Bu daha da ileri gidiyor, bu yüzden bu küçük programı kullanıyor, txt dosyasını jpg olarak değiştirebileceğiniz tüm txt dosyalarında çalıştırıyor. pastebin.com/8U0GWP0j Böylece tüm dosyalar ve bunların yaratılma zamanları listelenir. Bu çıktıyı bir dosyaya koyabilir ve dosya yazabilirsiniz | "02.06.2010" veya hangi tarihte istersen bul
barlop

Yanıtlar:


0

Bu biraz hile yapmak, çünkü bunu yapmanıza yardımcı olacak küçük bir program hazırlamanızı gerektirir. Biraz basit bir c # programı içerir fakat çoğunlukla cmd'dir.

Düşünce, eğer sadece cmd bir dosya adı verildiğinde, dosyanın bir satırda vereceği, dosyanın tam yolunu ve oluşturulma tarih / saatini veren bir program / komut içeriyorsa. Ardından cmd'de bir komut için bir cmd's kullanabilirsiniz, her dosyaya bu (dosyanın yolunu ve oluşturulma tarihini / saatini göster) komutunu uygulayın. Bu yüzden bir dosya adı alabilecek ve tam yolunu ve oluşturulma tarihini / saatini gösterebilecek küçük bir program yazdım. Sonra cmd olarak kullanıyorum.

Program ..

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>

Derlemek

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>

Böylece a.exe oluşturur

a.exe, bir dosya adını parametre olarak ilettiğinde, tam yol ve oluşturma tarihi / saati veren küçük bir programdır.

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

C:\blah>

Gerisi cmd

Eğer bir C # derleyiciniz yoksa

Buraya a.cs (yukarıdaki kaynak kodu) a.exe dosyasına bir bağlantı ekledim ve krom herhangi bir exe'i engellemeye çalıştığından, a.ex2 dosyasını indirip yeniden adlandırabilirsiniz. Veya Chrome, exe'i engellemeye çalıştığında "dismiss" deyin ve krom içindeki indirmelere gidin ve recover dosyasını söyleyin. Ancak bunu yapmak istiyorsanız, o EXE'yi alabilirsiniz. Belki görsel stüdyo ekspres (görsel stüdyosunun küçük bir versiyonu gibi), csc.exe'yi derlemenizi sağlar, eğer böyle yapmak istiyorsanız.

http://ge.tt/2LdAiGN2

Bir kez o küçük programa sahipseniz, bunu cmd olarak yapabilirsiniz.

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

Yani yapabilecekleriniz, bu komutu yapmak ama bir dosyaya dökülmek.

C:\blah>del mynewfile.a

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

C:\blah>

O zaman find veya gnuwin32's grep komutunu kullanabilirsiniz.

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

veya gnuwin32's grep ile

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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.