Bonjour à tous,
comment on fait à l'aide de t_sql pour verifier qu un dossier existe dans un chemin donné et comment on peut le supprimer aprés x minutes.
merci d'avance
Version imprimable
Bonjour à tous,
comment on fait à l'aide de t_sql pour verifier qu un dossier existe dans un chemin donné et comment on peut le supprimer aprés x minutes.
merci d'avance
Bonjour,
Avant de commencer, sachez qu'SQL Server n'est pas un gestionnaire de fichiers.
Vous pouvez néanmoins écrire quelque chose comme :
Et pour tester :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 CREATE PROCEDURE usp_SupprimeDossier @UNCDossierRacine VARCHAR(256), @NomDossier VARCHAR(256) AS BEGIN SET NOCOUNT ON -- Ajout de l'antislach à l'UNC si elle n'est pas présente IF SUBSTRING(@UNCDossierRacine, LEN(@UNCDossierRacine) - 1, 1) <> '\' BEGIN SET @UNCDossierRacine = @UNCDossierRacine + '\' END -- Activation de la procédure stockée étendue xp_cmdshell le cas échéant IF ( SELECT value_in_use FROM sys.configurations WHERE name = 'xp_cmdshell' ) <> 1 BEGIN EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'xp_cmdshell', 1 RECONFIGURE EXEC sp_configure 'show advanced options', 0 RECONFIGURE END -- Suppression du dossier recherché DECLARE @TbDossiersRepertoire TABLE ( NomDossier VARCHAR(256) ) INSERT INTO @TbDossiersRepertoire EXEC xp_subdirs @UNCDossierRacine IF EXISTS ( SELECT * FROM @TbDossiersRepertoire WHERE NomDossier = @NomDossier ) BEGIN DECLARE @CommandeDOS VARCHAR(256) SET @CommandeDOS = 'RMDIR /S /Q ' + @UNCDossierRacine + @NomDossier -- PRINT @CommandeDOS EXEC master.dbo.xp_cmdshell @CommandeDOS, NO_OUTPUT END END
@++ ;)Code:EXEC dbo.usp_SupprimeDossier 'C:\', 'ElSuket'
Merci beaucoup ElSuket,
vraiment vous etes genie
merci autre fois