Question
(Résolu) Supprimer les espaces entre les variables
- BARTHE
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 16 ans 7 mois #5041
par BARTHE
Réponse de BARTHE sur le sujet Re:Supprimer les espaces entre les variables
Phebus écrit:

génial je test ça dès que j'ai accès à un powershell v1
Judicieuse remarque
Je vais faire mieux alors :
write-host $destination\((get-item $source).Name).trim()
tu vois, quand tu veux ...Je vais faire mieux alors:
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 7 mois #5054
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer les espaces entre les variables
Salut,
cyril.barthe écrit:
[code:1]
$Batch=1|select Drive,Path,Name,FullPath
$Batch.Drive,$Batch.Path,$Batch.Name=\"C\",\"BATCH\",\"Defrag+Shutdown.cmd\"
$Batch.FullPath=\"$($Batch.Drive):\$($Batch.Path)\$($Batch.Name)\"
[/code:1]
Je pars d'un objet personnalisé, mais toi, je suppose, d'un objet fichier.
Voir aussi cette série d'articles sur Robocopy.
cyril.barthe écrit:
Non, en v1 cela fonctionne :Par contre cette solution est fonctionnelle qu'avec la version Windows PowerShell 2.0 CTP.
[code:1]
$Batch=1|select Drive,Path,Name,FullPath
$Batch.Drive,$Batch.Path,$Batch.Name=\"C\",\"BATCH\",\"Defrag+Shutdown.cmd\"
$Batch.FullPath=\"$($Batch.Drive):\$($Batch.Path)\$($Batch.Name)\"
[/code:1]
Je pars d'un objet personnalisé, mais toi, je suppose, d'un objet fichier.
Voir aussi cette série d'articles sur Robocopy.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- BARTHE
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 16 ans 7 mois #5074
par BARTHE
Réponse de BARTHE sur le sujet Re:Supprimer les espaces entre les variables
Bonjour et merci pour les liens
par contre je ne comprend pas cette ligne
[code:1]$Batch=1|select Drive,Path,Name,FullPath[/code:1]
si tu pouvais m'expliquer ce que tu fait ?
Merci beaucoup<br><br>Message édité par: cyril.barthe, à: 13/08/09 12:17
par contre je ne comprend pas cette ligne
[code:1]$Batch=1|select Drive,Path,Name,FullPath[/code:1]
si tu pouvais m'expliquer ce que tu fait ?
Merci beaucoup<br><br>Message édité par: cyril.barthe, à: 13/08/09 12:17
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 7 mois #5076
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer les espaces entre les variables
cyril.barthe écrit:
Tu peux avoir le détail ici .
Cela est similaire à l'appel suivant:
[code:1]
#crée un objet PS
$Batch=new-object System.Management.Automation.PsObject
#Ajoute des membres dont j'ai besoin
$Batch=$Batch|add-member NoteProperty Drive \"C\" –passthru
$Batch=$Batch|add-member NoteProperty Path \"Temp\" –passthru
$Batch=$Batch|add-member NoteProperty Name \"Nom.txt\" –passthru
...
[/code:1]
je crée ce que l'on appel sous PS un objet personnalisé.si tu pouvais m'expliquer ce que tu fait ?
Tu peux avoir le détail ici .
Cela est similaire à l'appel suivant:
[code:1]
#crée un objet PS
$Batch=new-object System.Management.Automation.PsObject
#Ajoute des membres dont j'ai besoin
$Batch=$Batch|add-member NoteProperty Drive \"C\" –passthru
$Batch=$Batch|add-member NoteProperty Path \"Temp\" –passthru
$Batch=$Batch|add-member NoteProperty Name \"Nom.txt\" –passthru
...
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- BARTHE
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 16 ans 7 mois #5077
par BARTHE
Réponse de BARTHE sur le sujet Re:Supprimer les espaces entre les variables
merci mais il me faut commencer déjà a réviser la notion d'objet,je vais lire les notes de ton site.
Mais tu vois sous powershell V1 j'ai des problèmes à ce niveau la
$((get-item $source).Name)
il me prend dans la variable le premier $
alors que sous la V2 pas de problème
[code:1]foreach ($source in $selection)
{
robocopy $source $destination\$((get-item $source).Name) /TEE /MIR /R:0 /W:0 >> .\rapport.txt
if (($LASTEXITCODE -eq 16) -or ($LASTEXITCODE -eq 8) -or ($LASTEXITCODE -eq 4))
{
$i++ #si robocopy renvoi un code erreur on incremente la variable de 1
}
}
[/code:1]
Mais tu vois sous powershell V1 j'ai des problèmes à ce niveau la
$((get-item $source).Name)
il me prend dans la variable le premier $
alors que sous la V2 pas de problème
[code:1]foreach ($source in $selection)
{
robocopy $source $destination\$((get-item $source).Name) /TEE /MIR /R:0 /W:0 >> .\rapport.txt
if (($LASTEXITCODE -eq 16) -or ($LASTEXITCODE -eq 8) -or ($LASTEXITCODE -eq 4))
{
$i++ #si robocopy renvoi un code erreur on incremente la variable de 1
}
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 7 mois #5083
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer les espaces entre les variables
cyril.barthe écrit:
Tu peux contourner le problème en placant entre guillemets le paramètre contenant une sous-expression :
[code:1]robocopy $source \"$destination\$((get-item $source).Name)\"
[/code:1]
De mon coté j'ai testé avec XCopy
[code:1]
$source=\"c:\temp\test.txt\"
$destination=\"c:\test\"
xcopy $source $destination\$((get-item $source).Name)
#erreur
xcopy $source $destination\\"$((get-item $source).Name)\"
#ok
#ou préférablement
xcopy $source \"$destination\$((get-item $source).Name)\"
#ok
[/code:1]
Oui je confirme le pb, tu devrais le poster sur MS Connect même si ce pb ne se pose plus en V2.il me prend dans la variable le premier $
alors que sous la V2 pas de problème
Tu peux contourner le problème en placant entre guillemets le paramètre contenant une sous-expression :
[code:1]robocopy $source \"$destination\$((get-item $source).Name)\"
[/code:1]
De mon coté j'ai testé avec XCopy
[code:1]
$source=\"c:\temp\test.txt\"
$destination=\"c:\test\"
xcopy $source $destination\$((get-item $source).Name)
#erreur
xcopy $source $destination\\"$((get-item $source).Name)\"
#ok
#ou préférablement
xcopy $source \"$destination\$((get-item $source).Name)\"
#ok
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.056 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- (Résolu) Supprimer les espaces entre les variables