Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1666 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Inversser les slashes dans un chemin de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Inversser les slashes dans un chemin de fichier

n°1670315
Coolnut
Posté le 13-01-2008 à 09:59:35  profilanswer
 

Bonjour, j'avai fait un script batch qui inversser les slashs dans un chemin de fichier contenu dans un variable:
 

Code :
  1. set VarChemCop=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier
  2. set VarChemCop=%%VarChemCop:\=/%%
  3. echo %VarChemCop%


Je voudrai exactement la même chose en VBS, pourie vous me donner un exemple ?

mood
Publicité
Posté le 13-01-2008 à 09:59:35  profilanswer
 

n°1670362
olivthill
Posté le 13-01-2008 à 14:53:24  profilanswer
 

Une petite boucle :

' ==================================================
' Remplace les anti-slashs par des slashs
' ou inversement
' ==================================================
 
VarChemCop = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier"
 
wscript.echo "VarChemCop=" & VarChemCop & "."
 
NewVarChemCop = ""
For i = 1 To Len(VarChemCop)
  c = Mid(VarChemCop, i, 1)
  If (c = "/" ) Then
     c = "\"
  Else
    If (c = "\" ) Then
       c = "/"
    End If
  End If
  NewVarChemCop = NewVarChemCop & c
Next
wscript.echo "NewVarChemCop=" & NewVarChemCop & "."

(Programme testé qui marche)

n°1670366
Coolnut
Posté le 13-01-2008 à 15:03:12  profilanswer
 

Bonjour et merci beaucoup ;)
 
Mais je voudrai juste inverser le shlass, pas inverssement, c'est pour ajouter dans un long script et il me faudrai quelque chose de simple

n°1670368
olivthill
Posté le 13-01-2008 à 15:07:29  profilanswer
 

Les boucles sont simples, mais elles font toujours peur à certains programmeurs. Je ne sais pas pourquoi.
Bon voici une solution avec quelques lignes en moins :

VarChemCop = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier"  
NewVarChemCop = ""  
For i = 1 To Len(VarChemCop)  
  c = Mid(VarChemCop, i, 1)  
  If (c = "\" ) Then c = "/"  
  NewVarChemCop = NewVarChemCop & c  
Next  
VarChemCop = NewVarChemCop


n°1670369
dreameddea​th
Posté le 13-01-2008 à 15:09:54  profilanswer
 

Replace me semble plus appriorié, je sais qu'elle existe en VB/VBA et a priori aussi en VBS. A essayer donc :

Code :
  1. str_dest = Replace(str_orig,"\","/" );

n°1670372
Coolnut
Posté le 13-01-2008 à 15:14:01  profilanswer
 

Merci beaucoup ;)

n°1670373
Coolnut
Posté le 13-01-2008 à 15:15:24  profilanswer
 

J'ai donc modifier un peut le script, au lieu de prendre le chemin du fichier dans une variable, je récupére le chemin du fichier glisser deposer sur le vbs, et j'ai rajouter un code pour copier le chemin dans le press papier, mais rien dans le presse papier, pourait tu m'aider a résoudre ce probléme ?
 

Code :
  1. Set objArgs = WScript.Arguments
  2.      For I = 0 to objArgs.Count - 1
  3.         vrRcpChmFchOuDoss = objArgs(I)
  4. Next
  5. NewVarChemCop = "" 
  6. For i = 1 To Len(vrRcpChmFchOuDoss) 
  7.   c = Mid(vrRcpChmFchOuDoss, i, 1) 
  8.   If (c = "\" ) Then c = "/" 
  9.   NewVarChemCop = NewVarChemCop & c 
  10. Next 
  11. VarChemCop = NewVarChemCop
  12. wscript.echo NewVarChemCop
  13. Class cClipBoard
  14.     Private objIE
  15.     Public Property Get Data()
  16.         Data = objIE.Document.ParentWindow.ClipboardData.GetData("Text" )
  17.     End Property
  18.     Public Property Let Data ( Value )
  19.         objIE.Document.ParentWindow.ClipboardData.SetData "Text" , Value
  20.     End Property
  21.     Public Sub Clear()
  22.         objIE.Document.ParentWindow.ClipboardData.ClearData()
  23.     End Sub
  24.     Private Sub Class_Initialize
  25.         Set objIE = CreateObject("InternetExplorer.Application" )
  26.         objIE.Navigate ("about:blank" )
  27.     End Sub 
  28.     Private Sub Class_Terminate
  29.         objIE.Quit
  30.         Set objIE = Nothing
  31.     End Sub
  32. End Class
  33. Dim ClipBoard
  34. Set Clipboard = New cClipBoard
  35. ClipBoard.Clear
  36. ClipBoard.Data = NewVarChemCop



Message édité par Coolnut le 13-01-2008 à 17:14:41
n°1670375
Coolnut
Posté le 13-01-2008 à 15:16:46  profilanswer
 

dreameddeath a écrit :

Replace me semble plus appriorié, je sais qu'elle existe en VB/VBA et a priori aussi en VBS. A essayer donc :

Code :
  1. str_dest = Replace(str_orig,"\","/" );



 
Mais le code n'est pas complet la, je ne sais pas comment faire ?

n°1671225
dreameddea​th
Posté le 14-01-2008 à 23:14:34  profilanswer
 

Code :
  1. NewVarChemCop = replace(vrRcpChmFchOuDoss,"\","/" )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Inversser les slashes dans un chemin de fichier

 

Sujets relatifs
lancer plusieurs fichier sur imprimante réseauModifier un fichier texte en php
Début du fichier au format RTF[Resolu] [Bash] Ecrire le résultat d'une commande dans un fichier HTML
récupérer le chemin du fichier interprété ? [résolu]Script enlever espaces d'un nom de fichier
[Resolu] Transformation d'un fichier en liste doublement chainéeImprimer in fichier sous Windows
Plus de sujets relatifs à : Inversser les slashes dans un chemin de fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR