split pour extraction de donnée et recopie dans un fichier
9 réponses
---DGI972---
Bonjour,
Je travaille sur un petit script qui doit lire un fichier txt qui
contient des N°Adhérent et si ce numéro existe dans le fichier CSV (en
2 ième position dans le csv) le script doit créer un troisième fichier
avec la ligne qui contient le N°Adhérent avec le nom du fichier cvs et
le nom du fichier
Je bute sur 2 Pb:
* le nom du fichier de sortie avec .GetFileName je ne veux pas
l'extension
* La boucle est elle correcte ?
Voici un exemple de fichier cab010108.txt qui contient les numéros
d'adhérents
12454
125455
12554
Voici un exemple de fichier testtoto.csv
cde sexe;N°adh;nadhcode;nom prénom;adresse
2;51268;*51268*;VAAR MARTHE MONARD ;FELIX 1 MORNES DES ESSES
1;12454;*62670*;MANDE EMILE ;CAP CHEVALIER
2;125455;*128200*;BAUR AMELIE ;RUE DU DOCTEUR ST PRIX
2;295270;*295270*;PANTA/MICHEL HERMENCIA;34 AVE GOZELAN
2;5207;*5207*;HALMA LAURE MARIE ;32 RUE DU SOURD
2;12554;*93968*;GARA FRANCOISE ;4 RUE DU RELAIS
Et je voudrais en sortie le fichier testtoto_cab010108.csv
1;12454;*62670*;MANDE EMILE ;CAP CHEVALIER
2;125455;*128200*;BAUR AMELIE ;RUE DU DOCTEUR ST PRIX
2;12554;*93968*;GARA FRANCOISE ;4 RUE DU RELAIS
Debut du Script
Title = "Extraction CAB V1.0"
Prompt = "Voulez vous lancer l'extraction des CAB des Fichiers CSV "_
&VbCrLf&VbCrLf&"1/ Choisir le fichier CSV "_
&VbCrLf&"2/ Choisir le fichier TXT CAB?"_
&VbCrLf&VbCrLf&"Le fichier sera créé dans le répertoire D:\EDITION\"_
&VbCrLf&"Avec le Non du fichier CSV_Nom du TXT CAB.CSV"
messagefile = msgbox(Prompt, vbOKCancel, Title)
IF messagefile = 2 then
wscript.quit
END IF
Wscript.Echo "1/ Choisir le fichier CSV!."
fichCSV = ChooseFile()
Wscript.Echo "2/ Choisir le fichier TXT CAB!."
fichCAB = ChooseFile()
Set oFs=CreateObject("Scripting.FileSystemObject")
Set oFileCSV=oFs.OpenTextFile(fichCSV)
Set oFileCAB=oFs.OpenTextFile(fichCAB)
Set
oFileOut=oFs.OpenTextFile("C:\GILLES\EDITION\"&oFs.GetFileName(fichCSV)&"_"&oFs.GetFileName(fichCAB)&".csv",2,
True)
cab=Split(oFileCAB.ReadAll,VBCrLf)
For Each strLine In cab
csv=Split(oFileCSV.ReadAll,VBCrLf)
For Each strField In csv
if strline=Split(csv(1),";") then oFileOut.Write strField
Next
Next
wscript.echo "L'Extraction a bien été traitée "
WScript.Quit
Function ChooseFile()
On Error Resume Next
Dim Q2, sRet
Q2 = chr(34)
ChooseFile = ""
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = False
IE.Navigate("about:blank")
Do Until IE.ReadyState = 4
Loop
IE.Document.Write "<HTML><BODY><INPUT ID=" & Q2 & "Fil" & Q2 &
"Type=" & Q2 & "file" & Q2 & "></BODY></HTML>"
With IE.Document.all.Fil
.focus
.click
ChooseFile = .value
End With
IE.Quit
Set IE = Nothing
End Function
'***********************************************************************
Fin du Script
Un petit coup de pousse serait le bien venu
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Méta-MCI \(MVP\)
Bonjour !
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off echo. IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i type testtoto_cab010108.csv goto :EOF
:SUB FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo %%i>>testtoto_cab010108.csv goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous les Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans ce mode, sans interface graphique, ni dotNET installé/installable, les batchs sont rois. PowerShell, s'appuyant sur dotNET, n'y fonctionne pas. Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
Bonjour !
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off
echo.
IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv
FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i
type testtoto_cab010108.csv
goto :EOF
:SUB
FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo
%%i>>testtoto_cab010108.csv
goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que
Microsoft a donné un signe fort, pour le retour du BATCH. En effet,
tous les Windows-2008-Serveurs peuvent être installés en mode "Core".
Et, dans ce mode, sans interface graphique, ni dotNET
installé/installable, les batchs sont rois.
PowerShell, s'appuyant sur dotNET, n'y fonctionne pas.
Cependant, par honnêteté, je signale que VBscript et JScript
fonctionnent également (uniquement en CScript, en invite de commande).
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off echo. IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i type testtoto_cab010108.csv goto :EOF
:SUB FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo %%i>>testtoto_cab010108.csv goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous les Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans ce mode, sans interface graphique, ni dotNET installé/installable, les batchs sont rois. PowerShell, s'appuyant sur dotNET, n'y fonctionne pas. Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
---DGI972---
Bonjour !
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off echo. IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i type testtoto_cab010108.csv goto :EOF
:SUB FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo %%i>>testtoto_cab010108.csv goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous les Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans ce mode, sans interface graphique, ni dotNET installé/installable, les batchs sont rois. PowerShell, s'appuyant sur dotNET, n'y fonctionne pas. Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
Cela fonctionne bien avec des fichiers en noms fixes. Je pensais plus en VBS ... merci quand même
Bonjour !
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off
echo.
IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv
FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i
type testtoto_cab010108.csv
goto :EOF
:SUB
FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo
%%i>>testtoto_cab010108.csv
goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que
Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous les
Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans ce
mode, sans interface graphique, ni dotNET installé/installable, les batchs
sont rois.
PowerShell, s'appuyant sur dotNET, n'y fonctionne pas.
Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent
également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
Cela fonctionne bien avec des fichiers en noms fixes.
Je pensais plus en VBS ...
merci quand même
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off echo. IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i type testtoto_cab010108.csv goto :EOF
:SUB FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo %%i>>testtoto_cab010108.csv goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous les Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans ce mode, sans interface graphique, ni dotNET installé/installable, les batchs sont rois. PowerShell, s'appuyant sur dotNET, n'y fonctionne pas. Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
Cela fonctionne bien avec des fichiers en noms fixes. Je pensais plus en VBS ... merci quand même
---DGI972---
Bonjour !
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off echo. IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i type testtoto_cab010108.csv goto :EOF
:SUB FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo %%i>>testtoto_cab010108.csv goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous les Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans ce mode, sans interface graphique, ni dotNET installé/installable, les batchs sont rois. PowerShell, s'appuyant sur dotNET, n'y fonctionne pas. Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
Cela fonctionne bien avec des fichiers en noms fixes. Je pensais plus en VBS ... merci quand même
Je me répond a moi même pour le premier point
un .GetBaseName renvoit le nom du fichier sans l'extension.
Pour le point 2 ma ligne: if strline=Split(csv(1),";") then oFileOut.Write strField n'est pas bonne
je cherche encore et encore
Bonjour !
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off
echo.
IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv
FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i
type testtoto_cab010108.csv
goto :EOF
:SUB
FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo
%%i>>testtoto_cab010108.csv
goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que
Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous
les Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans
ce mode, sans interface graphique, ni dotNET installé/installable, les
batchs sont rois.
PowerShell, s'appuyant sur dotNET, n'y fonctionne pas.
Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent
également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
Cela fonctionne bien avec des fichiers en noms fixes.
Je pensais plus en VBS ...
merci quand même
Je me répond a moi même pour le premier point
un .GetBaseName renvoit le nom du fichier sans l'extension.
Pour le point 2 ma ligne:
if strline=Split(csv(1),";") then oFileOut.Write strField
n'est pas bonne
Le petit batch ci-dessous doit faire ce que tu demandes.
@echo off echo. IF EXIST testtoto_cab010108.csv DEL testtoto_cab010108.csv FOR /F "tokens=*" %%i IN (010108.txt) DO CALL :SUB %%i type testtoto_cab010108.csv goto :EOF
:SUB FOR /F "tokens=*" %%i IN ('type testtoto.csv ^| find ";%*"') DO echo %%i>>testtoto_cab010108.csv goto :EOF
J'en profite pour signaler que, suite aux Techdays, on peut affirmer que Microsoft a donné un signe fort, pour le retour du BATCH. En effet, tous les Windows-2008-Serveurs peuvent être installés en mode "Core". Et, dans ce mode, sans interface graphique, ni dotNET installé/installable, les batchs sont rois. PowerShell, s'appuyant sur dotNET, n'y fonctionne pas. Cependant, par honnêteté, je signale que VBscript et JScript fonctionnent également (uniquement en CScript, en invite de commande).
@+
Michel Claveau
Cela fonctionne bien avec des fichiers en noms fixes. Je pensais plus en VBS ... merci quand même
Je me répond a moi même pour le premier point
un .GetBaseName renvoit le nom du fichier sans l'extension.
Pour le point 2 ma ligne: if strline=Split(csv(1),";") then oFileOut.Write strField n'est pas bonne
je cherche encore et encore
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonsoir,
| Pour le point 2 ma ligne: | if strline=Split(csv(1),";") then oFileOut.Write strField | n'est pas bonne | | je cherche encore et encore
Peut-être comme cela :
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If strLine = Split(strField,";")(1) Then oFileOut.Write strField Next Next
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.93687d82fe4ac093.33554@NOSPAMlaposte.net
Bonsoir,
| Pour le point 2 ma ligne:
| if strline=Split(csv(1),";") then oFileOut.Write strField
| n'est pas bonne
|
| je cherche encore et encore
Peut-être comme cela :
cab=Split(oFileCAB.ReadAll,VBCrLf)
csv=Split(oFileCSV.ReadAll,VBCrLf)
For Each strLine In cab
For Each strField In csv
If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Next
Next
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonsoir,
| Pour le point 2 ma ligne: | if strline=Split(csv(1),";") then oFileOut.Write strField | n'est pas bonne | | je cherche encore et encore
Peut-être comme cela :
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If strLine = Split(strField,";")(1) Then oFileOut.Write strField Next Next
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
---DGI972---
Gilles LAURENT [MVP] avait prétendu :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonsoir,
Pour le point 2 ma ligne: if strline=Split(csv(1),";") then oFileOut.Write strField n'est pas bonne
je cherche encore et encore
Peut-être comme cela :
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If strLine = Split(strField,";")(1) Then oFileOut.Write strField Next Next
Merci gilles pour votre intêret a mon problème:
J'ai eu droit a un beau indice en dehors de la plage :'[Number:1] a la ligne: If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Gilles LAURENT [MVP] avait prétendu :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.93687d82fe4ac093.33554@NOSPAMlaposte.net
Bonsoir,
Pour le point 2 ma ligne:
if strline=Split(csv(1),";") then oFileOut.Write strField
n'est pas bonne
je cherche encore et encore
Peut-être comme cela :
cab=Split(oFileCAB.ReadAll,VBCrLf)
csv=Split(oFileCSV.ReadAll,VBCrLf)
For Each strLine In cab
For Each strField In csv
If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Next
Next
Merci gilles pour votre intêret a mon problème:
J'ai eu droit a un beau indice en dehors de la plage :'[Number:1]
a la ligne:
If strLine = Split(strField,";")(1) Then oFileOut.Write strField
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonsoir,
Pour le point 2 ma ligne: if strline=Split(csv(1),";") then oFileOut.Write strField n'est pas bonne
je cherche encore et encore
Peut-être comme cela :
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If strLine = Split(strField,";")(1) Then oFileOut.Write strField Next Next
Merci gilles pour votre intêret a mon problème:
J'ai eu droit a un beau indice en dehors de la plage :'[Number:1] a la ligne: If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Gilles LAURENT [MVP]
Bonjour Gilles,
| J'ai eu droit a un beau indice en dehors de la plage :'[Number:1] | a la ligne: | If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Cela doit être causé par des crlf en fin de fichier. Un test est donc ajouté pour s'assurer que la ligne contient au moins deux éléments.
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If UBound(Split(strField,";")) > 1 Then If strLine = Split(strField,";")(1) Then oFileOut.WriteLine strField End If Next Next
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Bonjour Gilles,
| J'ai eu droit a un beau indice en dehors de la plage :'[Number:1]
| a la ligne:
| If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Cela doit être causé par des crlf en fin de fichier. Un test est donc ajouté
pour s'assurer que la ligne contient au moins deux éléments.
cab=Split(oFileCAB.ReadAll,VBCrLf)
csv=Split(oFileCSV.ReadAll,VBCrLf)
For Each strLine In cab
For Each strField In csv
If UBound(Split(strField,";")) > 1 Then
If strLine = Split(strField,";")(1) Then oFileOut.WriteLine strField
End If
Next
Next
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
| J'ai eu droit a un beau indice en dehors de la plage :'[Number:1] | a la ligne: | If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Cela doit être causé par des crlf en fin de fichier. Un test est donc ajouté pour s'assurer que la ligne contient au moins deux éléments.
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If UBound(Split(strField,";")) > 1 Then If strLine = Split(strField,";")(1) Then oFileOut.WriteLine strField End If Next Next
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
---DGI972---
Bonjour Gilles,
J'ai eu droit a un beau indice en dehors de la plage :'[Number:1] a la ligne: If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Cela doit être causé par des crlf en fin de fichier. Un test est donc ajouté pour s'assurer que la ligne contient au moins deux éléments.
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If UBound(Split(strField,";")) > 1 Then If strLine = Split(strField,";")(1) Then oFileOut.WriteLine strField End If Next Next
Yes !!! You are the Best ...
Je peux abuser ... Comment récupérer le chemin dans lequel tourne le vbs en question pour pouvoir copier le fichier résultat dans le même répertoire ou tourne le vbs.
Et encore merci
Bonjour Gilles,
J'ai eu droit a un beau indice en dehors de la plage :'[Number:1]
a la ligne:
If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Cela doit être causé par des crlf en fin de fichier. Un test est donc ajouté
pour s'assurer que la ligne contient au moins deux éléments.
cab=Split(oFileCAB.ReadAll,VBCrLf)
csv=Split(oFileCSV.ReadAll,VBCrLf)
For Each strLine In cab
For Each strField In csv
If UBound(Split(strField,";")) > 1 Then
If strLine = Split(strField,";")(1) Then oFileOut.WriteLine strField
End If
Next
Next
Yes !!!
You are the Best ...
Je peux abuser ...
Comment récupérer le chemin dans lequel tourne le vbs en question pour
pouvoir copier le fichier résultat dans le même répertoire ou tourne le
vbs.
J'ai eu droit a un beau indice en dehors de la plage :'[Number:1] a la ligne: If strLine = Split(strField,";")(1) Then oFileOut.Write strField
Cela doit être causé par des crlf en fin de fichier. Un test est donc ajouté pour s'assurer que la ligne contient au moins deux éléments.
cab=Split(oFileCAB.ReadAll,VBCrLf) csv=Split(oFileCSV.ReadAll,VBCrLf) For Each strLine In cab For Each strField In csv If UBound(Split(strField,";")) > 1 Then If strLine = Split(strField,";")(1) Then oFileOut.WriteLine strField End If Next Next
Yes !!! You are the Best ...
Je peux abuser ... Comment récupérer le chemin dans lequel tourne le vbs en question pour pouvoir copier le fichier résultat dans le même répertoire ou tourne le vbs.
Et encore merci
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news: | Comment récupérer le chemin dans lequel tourne le vbs en question pour | pouvoir copier le fichier résultat dans le même répertoire ou tourne | le vbs.
Plusieurs méthodes sont possibles ;-) Personnellement je préfère m'appuyer sur la méthode gpfn :
Set oFs=CreateObject("Scripting.FileSystemObject") sCurrentFolder=oFs.GetParentFolderName(WScript.ScriptFullName) WScript.Echo sCurrentFolder
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.9a417d828fcb09ad.33554@NOSPAMlaposte.net
| Comment récupérer le chemin dans lequel tourne le vbs en question pour
| pouvoir copier le fichier résultat dans le même répertoire ou tourne
| le vbs.
Plusieurs méthodes sont possibles ;-)
Personnellement je préfère m'appuyer sur la méthode gpfn :
Set oFs=CreateObject("Scripting.FileSystemObject")
sCurrentFolder=oFs.GetParentFolderName(WScript.ScriptFullName)
WScript.Echo sCurrentFolder
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news: | Comment récupérer le chemin dans lequel tourne le vbs en question pour | pouvoir copier le fichier résultat dans le même répertoire ou tourne | le vbs.
Plusieurs méthodes sont possibles ;-) Personnellement je préfère m'appuyer sur la méthode gpfn :
Set oFs=CreateObject("Scripting.FileSystemObject") sCurrentFolder=oFs.GetParentFolderName(WScript.ScriptFullName) WScript.Echo sCurrentFolder
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
---DGI972---
Gilles LAURENT [MVP] vient de nous annoncer :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Comment récupérer le chemin dans lequel tourne le vbs en question pour pouvoir copier le fichier résultat dans le même répertoire ou tourne le vbs.
Plusieurs méthodes sont possibles ;-) Personnellement je préfère m'appuyer sur la méthode gpfn :
Set oFs=CreateObject("Scripting.FileSystemObject") sCurrentFolder=oFs.GetParentFolderName(WScript.ScriptFullName) WScript.Echo sCurrentFolder
Super avec un petit &""& voila le résultat pour mon fichier de sortie:
Set oFileOut=oFs.OpenTextFile(sCurrentFolder&""&oFs.GetBaseName(fichCSV)&"_"&oFs.GetBaseName(fichCAB)&".csv",2, True)
Affaire bouclée. Je connais une collègue qui va être contente pour ce traitement ponctuel.
Merci gilles
NB: c'est quoi la méthode gpfn (pour ne pas mourrir idiot) ?
Gilles LAURENT [MVP] vient de nous annoncer :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.9a417d828fcb09ad.33554@NOSPAMlaposte.net
Comment récupérer le chemin dans lequel tourne le vbs en question pour
pouvoir copier le fichier résultat dans le même répertoire ou tourne
le vbs.
Plusieurs méthodes sont possibles ;-)
Personnellement je préfère m'appuyer sur la méthode gpfn :
Set oFs=CreateObject("Scripting.FileSystemObject")
sCurrentFolder=oFs.GetParentFolderName(WScript.ScriptFullName)
WScript.Echo sCurrentFolder
Super avec un petit &""& voila le résultat pour mon fichier de sortie:
Set
oFileOut=oFs.OpenTextFile(sCurrentFolder&""&oFs.GetBaseName(fichCSV)&"_"&oFs.GetBaseName(fichCAB)&".csv",2,
True)
Affaire bouclée.
Je connais une collègue qui va être contente pour ce traitement
ponctuel.
Merci gilles
NB: c'est quoi la méthode gpfn (pour ne pas mourrir idiot) ?