Question
(Résolu) Supprimer les espaces entre les variables
- BARTHE
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 25
- Remerciements reçus 0
Je m'initie au powershell avec un script de sauvegarde, ce que je souhaite c'est que robocopy soit capable d'utiliser multiple source mais aussi de me créer au niveau de la destination un nom de répertoire au nom du répertoire source.
Pour cela j'utilise (get-item $sources).Name dans une boucle For.
le problème c'est qu'entre la variable $destination et (get-item $source).Name un espace vient se loger, ce qui pour la suite avec robocopy est interprété comme un commutateur ....
exemple
[code:1]write-host $destination\(get-item $source).Name[/code:1]
[code:1]d:\dest\ org3[/code:1]
alors que je souhaite avoir comme résultat
[code:1]d:\dest\org3[/code:1]
Voici mon script en entier
[code:1]
$selection= @(\"D:\org\"
\"d:\org2\"
\"d:\org3\"«»)
$destination=\"d:\dest\"
# Recupere le nom du repertoire
#(get-item $sources).Name
foreach ($source in $selection) {
robocopy $source $destination\(get-item $source).Name
}
[/code:1]
Merci d'avance pour votre aide.
Message édité par: cyril.barthe, à: 30/07/09 18:07
Message édité par: cyril.barthe, à: 30/07/09 18:08
Message édité par: cyril.barthe, à: 30/07/09 18:19<br><br>Message édité par: Arnaud, à: 17/08/09 16:37
Connexion ou Créer un compte pour participer à la conversation.
- BARTHE
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 25
- Remerciements reçus 0
powershell-scripting.com/index.php?optio...id=3234&catid=14
Usage d'une variable au sein d'une string, elle sera expansée, c'est à dire que PS reconstruit la chaîne finale, les parenthèses indique d'interpréter ce sous ensemble avant le reste, un appel de fonction en quelque sorte et le dollar indique qu'on récupère une chaine de caractères :
Code:
[code:1]$Batch.FullPath=\"$($Batch.Drive):\$($Batch.Path)\$($Batch.Name)\" #ou une méthode
[/code:1]
Merci Laurent Dardenne !
Connexion ou Créer un compte pour participer à la conversation.
- BARTHE
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 25
- Remerciements reçus 0
Donc si il ya une autre solution avec powershell V1 je suis preneur
Connexion ou Créer un compte pour participer à la conversation.
- fabien
- Hors Ligne
- Membre junior
-
- Messages : 26
- Remerciements reçus 0
$varstring.replace(\" \",\"\")
Connexion ou Créer un compte pour participer à la conversation.
- BARTHE
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 25
- Remerciements reçus 0
Tu stocks le résultat dans une petite variable puis tu fais un replace :
$varstring.replace(\" \",\"\")
Merci pour ta réponse
Pas bête sauf pour les répertoires du genre \"Mes Documents\" ou cela risque de poser problème.
Connexion ou Créer un compte pour participer à la conversation.
- fabien
- Hors Ligne
- Membre junior
-
- Messages : 26
- Remerciements reçus 0
Je vais faire mieux alors :
write-host $destination\((get-item $source).Name).trim()
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- (Résolu) Supprimer les espaces entre les variables