Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:
> Un petit exemple :
>
> DECLARE @OS_COMMANDE NVARCHAR(4000)
> SET @OS_COMMANDE = '''DIR C:*.txt'''
>
> CREATE TABLE #dir (line NVARCHAR(256))
>
> INSERT INTO #dir
> EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
>
> DELETE FROM #dir
> WHERE line IS NULL
>
> DELETE FROM #dir
> WHERE SUBSTRING(line, 1, 1) = ' '
>
> SELECT *
> FROM #dir
>
> A +
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:
> Un petit exemple :
>
> DECLARE @OS_COMMANDE NVARCHAR(4000)
> SET @OS_COMMANDE = '''DIR C:*.txt'''
>
> CREATE TABLE #dir (line NVARCHAR(256))
>
> INSERT INTO #dir
> EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
>
> DELETE FROM #dir
> WHERE line IS NULL
>
> DELETE FROM #dir
> WHERE SUBSTRING(line, 1, 1) = ' '
>
> SELECT *
> FROM #dir
>
> A +
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:
> Un petit exemple :
>
> DECLARE @OS_COMMANDE NVARCHAR(4000)
> SET @OS_COMMANDE = '''DIR C:*.txt'''
>
> CREATE TABLE #dir (line NVARCHAR(256))
>
> INSERT INTO #dir
> EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
>
> DELETE FROM #dir
> WHERE line IS NULL
>
> DELETE FROM #dir
> WHERE SUBSTRING(line, 1, 1) = ' '
>
> SELECT *
> FROM #dir
>
> A +
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:
> Un petit exemple :
>
> DECLARE @OS_COMMANDE NVARCHAR(4000)
> SET @OS_COMMANDE = '''DIR C:*.txt'''
>
> CREATE TABLE #dir (line NVARCHAR(256))
>
> INSERT INTO #dir
> EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
>
> DELETE FROM #dir
> WHERE line IS NULL
>
> DELETE FROM #dir
> WHERE SUBSTRING(line, 1, 1) = ' '
>
> SELECT *
> FROM #dir
>
> A +
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:
> Un petit exemple :
>
> DECLARE @OS_COMMANDE NVARCHAR(4000)
> SET @OS_COMMANDE = '''DIR C:*.txt'''
>
> CREATE TABLE #dir (line NVARCHAR(256))
>
> INSERT INTO #dir
> EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
>
> DELETE FROM #dir
> WHERE line IS NULL
>
> DELETE FROM #dir
> WHERE SUBSTRING(line, 1, 1) = ' '
>
> SELECT *
> FROM #dir
>
> A +
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:
> Un petit exemple :
>
> DECLARE @OS_COMMANDE NVARCHAR(4000)
> SET @OS_COMMANDE = '''DIR C:*.txt'''
>
> CREATE TABLE #dir (line NVARCHAR(256))
>
> INSERT INTO #dir
> EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
>
> DELETE FROM #dir
> WHERE line IS NULL
>
> DELETE FROM #dir
> WHERE SUBSTRING(line, 1, 1) = ' '
>
> SELECT *
> FROM #dir
>
> A +
Salut,
Une solution pour le rencensement de fichiers d'un répertoire est de
modifier ton dir pour lui faire renvoyer des lignes plus simples à parser
(mais tu perds les infos sur la date et la taille) :
-- ============================================= >
DECLARE @CMD NVARCHAR(200)
SELECT @CMD = 'DIR /B /A-D C:*.txt'
CREATE TABLE #dir (line NVARCHAR(500))
INSERT INTO #dir EXEC master.dbo.xp_cmdshell @CMD
DELETE FROM #dir WHERE line IS NULL
SELECT * FROM #dir
DROP TABLE #dir
-- ============================================= >
Guillaume.
"Arnaud CAVELIER" a écrit :
> Bonjour,
>
> Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
> le nom des fichiers d'un répertoire donné.
>
> Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
> l'occurence).
>
> A priori, la structure de la LINE diffère d'un Windows XP Français à un
> Windows 2003 Server Américain.
>
> Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
> Ou comment être certain de la position du nom de fichier dans la chaine ?
>
> Merci
> Arnaud
>
> "Fred BROUARD" wrote:
>
> > Un petit exemple :
> >
> > DECLARE @OS_COMMANDE NVARCHAR(4000)
> > SET @OS_COMMANDE = '''DIR C:*.txt'''
> >
> > CREATE TABLE #dir (line NVARCHAR(256))
> >
> > INSERT INTO #dir
> > EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
> >
> > DELETE FROM #dir
> > WHERE line IS NULL
> >
> > DELETE FROM #dir
> > WHERE SUBSTRING(line, 1, 1) = ' '
> >
> > SELECT *
> > FROM #dir
> >
> > A +
>
Salut,
Une solution pour le rencensement de fichiers d'un répertoire est de
modifier ton dir pour lui faire renvoyer des lignes plus simples à parser
(mais tu perds les infos sur la date et la taille) :
-- ============================================= >
DECLARE @CMD NVARCHAR(200)
SELECT @CMD = 'DIR /B /A-D C:*.txt'
CREATE TABLE #dir (line NVARCHAR(500))
INSERT INTO #dir EXEC master.dbo.xp_cmdshell @CMD
DELETE FROM #dir WHERE line IS NULL
SELECT * FROM #dir
DROP TABLE #dir
-- ============================================= >
Guillaume.
"Arnaud CAVELIER" a écrit :
> Bonjour,
>
> Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
> le nom des fichiers d'un répertoire donné.
>
> Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
> l'occurence).
>
> A priori, la structure de la LINE diffère d'un Windows XP Français à un
> Windows 2003 Server Américain.
>
> Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
> Ou comment être certain de la position du nom de fichier dans la chaine ?
>
> Merci
> Arnaud
>
> "Fred BROUARD" wrote:
>
> > Un petit exemple :
> >
> > DECLARE @OS_COMMANDE NVARCHAR(4000)
> > SET @OS_COMMANDE = '''DIR C:*.txt'''
> >
> > CREATE TABLE #dir (line NVARCHAR(256))
> >
> > INSERT INTO #dir
> > EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
> >
> > DELETE FROM #dir
> > WHERE line IS NULL
> >
> > DELETE FROM #dir
> > WHERE SUBSTRING(line, 1, 1) = ' '
> >
> > SELECT *
> > FROM #dir
> >
> > A +
>
Salut,
Une solution pour le rencensement de fichiers d'un répertoire est de
modifier ton dir pour lui faire renvoyer des lignes plus simples à parser
(mais tu perds les infos sur la date et la taille) :
-- ============================================= >
DECLARE @CMD NVARCHAR(200)
SELECT @CMD = 'DIR /B /A-D C:*.txt'
CREATE TABLE #dir (line NVARCHAR(500))
INSERT INTO #dir EXEC master.dbo.xp_cmdshell @CMD
DELETE FROM #dir WHERE line IS NULL
SELECT * FROM #dir
DROP TABLE #dir
-- ============================================= >
Guillaume.
"Arnaud CAVELIER" a écrit :
> Bonjour,
>
> Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
> le nom des fichiers d'un répertoire donné.
>
> Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
> l'occurence).
>
> A priori, la structure de la LINE diffère d'un Windows XP Français à un
> Windows 2003 Server Américain.
>
> Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
> Ou comment être certain de la position du nom de fichier dans la chaine ?
>
> Merci
> Arnaud
>
> "Fred BROUARD" wrote:
>
> > Un petit exemple :
> >
> > DECLARE @OS_COMMANDE NVARCHAR(4000)
> > SET @OS_COMMANDE = '''DIR C:*.txt'''
> >
> > CREATE TABLE #dir (line NVARCHAR(256))
> >
> > INSERT INTO #dir
> > EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
> >
> > DELETE FROM #dir
> > WHERE line IS NULL
> >
> > DELETE FROM #dir
> > WHERE SUBSTRING(line, 1, 1) = ' '
> >
> > SELECT *
> > FROM #dir
> >
> > A +
>
Bonjour et merci c'est exactement ce qui me manquait !
Bravo et encore merci
Arnaud
"GNocent" wrote:Salut,
Une solution pour le rencensement de fichiers d'un répertoire est de
modifier ton dir pour lui faire renvoyer des lignes plus simples à parser
(mais tu perds les infos sur la date et la taille) :
-- ============================================= >>
DECLARE @CMD NVARCHAR(200)
SELECT @CMD = 'DIR /B /A-D C:*.txt'
CREATE TABLE #dir (line NVARCHAR(500))
INSERT INTO #dir EXEC master.dbo.xp_cmdshell @CMD
DELETE FROM #dir WHERE line IS NULL
SELECT * FROM #dir
DROP TABLE #dir
-- ============================================= >>
Guillaume.
"Arnaud CAVELIER" a écrit :
> Bonjour,
>
> Il y a quelques temps Fred Brouard m'a proposé une procédure pour
> récupérer
> le nom des fichiers d'un répertoire donné.
>
> Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
> l'occurence).
>
> A priori, la structure de la LINE diffère d'un Windows XP Français à un
> Windows 2003 Server Américain.
>
> Est-il possible d'avoir une info plus précise sur le contenu de cette
> LINE ?
> Ou comment être certain de la position du nom de fichier dans la chaine
> ?
>
> Merci
> Arnaud
>
> "Fred BROUARD" wrote:
>
> > Un petit exemple :
> >
> > DECLARE @OS_COMMANDE NVARCHAR(4000)
> > SET @OS_COMMANDE = '''DIR C:*.txt'''
> >
> > CREATE TABLE #dir (line NVARCHAR(256))
> >
> > INSERT INTO #dir
> > EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
> >
> > DELETE FROM #dir
> > WHERE line IS NULL
> >
> > DELETE FROM #dir
> > WHERE SUBSTRING(line, 1, 1) = ' '
> >
> > SELECT *
> > FROM #dir
> >
> > A +
>
Bonjour et merci c'est exactement ce qui me manquait !
Bravo et encore merci
Arnaud
"GNocent" wrote:
Salut,
Une solution pour le rencensement de fichiers d'un répertoire est de
modifier ton dir pour lui faire renvoyer des lignes plus simples à parser
(mais tu perds les infos sur la date et la taille) :
-- ============================================= >>
DECLARE @CMD NVARCHAR(200)
SELECT @CMD = 'DIR /B /A-D C:*.txt'
CREATE TABLE #dir (line NVARCHAR(500))
INSERT INTO #dir EXEC master.dbo.xp_cmdshell @CMD
DELETE FROM #dir WHERE line IS NULL
SELECT * FROM #dir
DROP TABLE #dir
-- ============================================= >>
Guillaume.
"Arnaud CAVELIER" a écrit :
> Bonjour,
>
> Il y a quelques temps Fred Brouard m'a proposé une procédure pour
> récupérer
> le nom des fichiers d'un répertoire donné.
>
> Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
> l'occurence).
>
> A priori, la structure de la LINE diffère d'un Windows XP Français à un
> Windows 2003 Server Américain.
>
> Est-il possible d'avoir une info plus précise sur le contenu de cette
> LINE ?
> Ou comment être certain de la position du nom de fichier dans la chaine
> ?
>
> Merci
> Arnaud
>
> "Fred BROUARD" wrote:
>
> > Un petit exemple :
> >
> > DECLARE @OS_COMMANDE NVARCHAR(4000)
> > SET @OS_COMMANDE = '''DIR C:*.txt'''
> >
> > CREATE TABLE #dir (line NVARCHAR(256))
> >
> > INSERT INTO #dir
> > EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
> >
> > DELETE FROM #dir
> > WHERE line IS NULL
> >
> > DELETE FROM #dir
> > WHERE SUBSTRING(line, 1, 1) = ' '
> >
> > SELECT *
> > FROM #dir
> >
> > A +
>
Bonjour et merci c'est exactement ce qui me manquait !
Bravo et encore merci
Arnaud
"GNocent" wrote:Salut,
Une solution pour le rencensement de fichiers d'un répertoire est de
modifier ton dir pour lui faire renvoyer des lignes plus simples à parser
(mais tu perds les infos sur la date et la taille) :
-- ============================================= >>
DECLARE @CMD NVARCHAR(200)
SELECT @CMD = 'DIR /B /A-D C:*.txt'
CREATE TABLE #dir (line NVARCHAR(500))
INSERT INTO #dir EXEC master.dbo.xp_cmdshell @CMD
DELETE FROM #dir WHERE line IS NULL
SELECT * FROM #dir
DROP TABLE #dir
-- ============================================= >>
Guillaume.
"Arnaud CAVELIER" a écrit :
> Bonjour,
>
> Il y a quelques temps Fred Brouard m'a proposé une procédure pour
> récupérer
> le nom des fichiers d'un répertoire donné.
>
> Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
> l'occurence).
>
> A priori, la structure de la LINE diffère d'un Windows XP Français à un
> Windows 2003 Server Américain.
>
> Est-il possible d'avoir une info plus précise sur le contenu de cette
> LINE ?
> Ou comment être certain de la position du nom de fichier dans la chaine
> ?
>
> Merci
> Arnaud
>
> "Fred BROUARD" wrote:
>
> > Un petit exemple :
> >
> > DECLARE @OS_COMMANDE NVARCHAR(4000)
> > SET @OS_COMMANDE = '''DIR C:*.txt'''
> >
> > CREATE TABLE #dir (line NVARCHAR(256))
> >
> > INSERT INTO #dir
> > EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
> >
> > DELETE FROM #dir
> > WHERE line IS NULL
> >
> > DELETE FROM #dir
> > WHERE SUBSTRING(line, 1, 1) = ' '
> >
> > SELECT *
> > FROM #dir
> >
> > A +
>
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:Un petit exemple :
DECLARE @OS_COMMANDE NVARCHAR(4000)
SET @OS_COMMANDE = '''DIR C:*.txt'''
CREATE TABLE #dir (line NVARCHAR(256))
INSERT INTO #dir
EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
DELETE FROM #dir
WHERE line IS NULL
DELETE FROM #dir
WHERE SUBSTRING(line, 1, 1) = ' '
SELECT *
FROM #dir
A +
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:
Un petit exemple :
DECLARE @OS_COMMANDE NVARCHAR(4000)
SET @OS_COMMANDE = '''DIR C:*.txt'''
CREATE TABLE #dir (line NVARCHAR(256))
INSERT INTO #dir
EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
DELETE FROM #dir
WHERE line IS NULL
DELETE FROM #dir
WHERE SUBSTRING(line, 1, 1) = ' '
SELECT *
FROM #dir
A +
Bonjour,
Il y a quelques temps Fred Brouard m'a proposé une procédure pour récupérer
le nom des fichiers d'un répertoire donné.
Cela a bien fonctionné jusqu'au jour où j'ai changé d'OS (ce matin en
l'occurence).
A priori, la structure de la LINE diffère d'un Windows XP Français à un
Windows 2003 Server Américain.
Est-il possible d'avoir une info plus précise sur le contenu de cette LINE ?
Ou comment être certain de la position du nom de fichier dans la chaine ?
Merci
Arnaud
"Fred BROUARD" wrote:Un petit exemple :
DECLARE @OS_COMMANDE NVARCHAR(4000)
SET @OS_COMMANDE = '''DIR C:*.txt'''
CREATE TABLE #dir (line NVARCHAR(256))
INSERT INTO #dir
EXEC ('master..xp_cmdshell ' + @OS_COMMANDE)
DELETE FROM #dir
WHERE line IS NULL
DELETE FROM #dir
WHERE SUBSTRING(line, 1, 1) = ' '
SELECT *
FROM #dir
A +