In SQL Server, sto utilizzando una query di seguito per caricare tutti i nomi di file ".jpg" da una directory specifica (ad esempio z :) in una tabella .Come caricare i file in base a Data di creazione nella shell dei comandi di Windows tramite xp_cmdshell di SQL Server
Voglio sapere se c'è un modo per caricare i file in base al Creato Data invece di Modified Data nel prompt dei comandi di Windows. La query di seguito funziona solo con Data di modifica quando si esegue xp_cmdshell
.
-- Create the table to store file list
CREATE TABLE myFilesTable (myFileID INT IDENTITY, myFileName NVARCHAR(256))
-- Insert file list from directory to SQL Server
DECLARE @Command varchar(1024) = 'z: & forfiles /m *.jpg /s /d 07/16/2015 /c "cmd /c echo @fdate @ftime @path"'
INSERT INTO myFilesTable
EXEC MASTER.dbo.xp_cmdshell @Command
-- Check the list
SELECT * FROM myFilesTable
GO
07/16/2015
nella variabile @Command
è la data Modified. Ovviamente il comando forfiles
non ha la minima idea di filtrare i file per Data di creazione.
Di seguito sono riportati alcuni risultati della query sopra riportata in cui NomeFile sono prefissati da Data di modifica.
myFileID | myFileName
----------------------
1 | NULL
2 | 8/18/2015 11:13:08 AM "Z:\LDB1 App Export\Top Star_Aluminium Frames & Furniture (B)-31267.jpg"
3 | 8/19/2015 5:44:41 PM "Z:\LDB2 App Export\Soe Tint_Hardware Merchants & Ironmongers-31435.jpg"
4 | 8/19/2015 10:37:13 AM "Z:\Cover App Export\Taw Win Tun_Electrical Goods Sales & Repairing (A) -31382.jpg"
5 | 8/24/2015 10:34:33 AM "Z:\CP1 App Export\Thiri May_Fabric Shop (B)-30646.jpg"
6 | 8/17/2015 10:08:39 AM "Z:\CP2 App Export\Ko Tin Aung_Building Materials (B)-31300.jpg"
ho anche provato ad utilizzare dir
comando con timeField /t:c
(l'ora di creazione) qualcosa come
EXEC MASTER.dbo.xp_cmdshell 'dir z: *.jpg /t:c /s'
Mi dà la data Creato ma mi mostra il seguente risultato che non è così previsto. Voglio i nomi dei file con nomi di percorso/directory completi come mostrato nel risultato precedente.
myFileID | myFileName
----------------------
1 | Volume in drive Z is Publication
2 | Volume Serial Number is 3EF0-5CE4
3 | NULL
4 | Directory of Z:\
5 | NULL
6 | 07/28/2015 06:41 PM <DIR> .
7 | 07/28/2015 07:06 PM <DIR> ..
8 | 03/05/2015 11:42 AM <DIR> LDB1 App Export
9 | 03/05/2015 05:31 PM <DIR> LDB2 App Export
10 | 0 File(s) 0 bytes
11 | NULL
12 | Directory of Z:\LDB1 App Export
13 | NULL
14 | 03/05/2015 11:42 AM <DIR> .
15 | 07/28/2015 06:41 PM <DIR> ..
16 | 07/28/2015 06:49 PM 2,981,526 Kyaw Phay_Dental Equipment (A)-30998.jpg
17 | 08/31/2015 03:10 PM 3,126,629 Venus_Fashion Shops-31438.jpg
18 | 07/28/2015 06:49 PM 3,544,247 Marvellous_Tourism Services-30986.jpg
... | ...
Il risultato atteso dovrebbe essere qualcosa come qui di seguito,
myFileID | CreatedDate | myFileName
----------------------------------------------
1 | 8/10/2015 11:24:16 AM | "Z:\LDB1 App Export\Top Star_Aluminium Frames & Furniture (B)-31267.jpg"
2 | 8/10/2015 11:24:27 AM | "Z:\LDB2 App Export\Soe Tint_Hardware Merchants & Ironmongers-31435.jpg"
3 | 8/12/2015 10:05:22 AM | "Z:\Cover App Export\Taw Win Tun_Electrical Goods Sales & Repairing (A) -31382.jpg"
4 | 8/12/2015 10:05:22 AM | "Z:\CP1 App Export\Thiri May_Fabric Shop (B)-30646.jpg"
5 | 8/12/2015 10:05:22 AM | "Z:\CP2 App Export\Ko Tin Aung_Building Materials (B)-31300.jpg"
Qualsiasi aiuto sarebbe molto apprezzato :)
Grazie @marc_s per la modifica :) purtroppo nessuno sta rispondendo alla mia domanda: \ – kolunar
puoi aggiungere il tag 'batch-file' che sembra essere più popolare.Invece dei forfiles puoi provare con WMIC che offre più controllo, ma mi ci vorrà del tempo per creare una query, – npocmaka
Rif .: utilizzando il comando dir http://superuser.com/questions/355771/windows-listing-of-files-from-command-line – kolunar