Question
[RESOLU] Fermer tous les fichier ouverts
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
[code:1]PS C:\Users\Mat.TORONTO> get-help remove-item -Parameter recurse
-Recurse [<SwitchParameter>]
Deletes the items in the specified locations and in all child items of the locations.
The Recurse parameter in this cmdlet does not work properly.
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
PS C:\Users\Mat.TORONTO> $PSVersionTable
Name Value
----
WSManStackVersion 3.0
PSCompatibleVersions {1.0, 2.0, 3.0}
SerializationVersion 1.1.0.1
BuildVersion 6.2.9200.16398
PSVersion 3.0
CLRVersion 4.0.30319.296
PSRemotingProtocolVersion 2.2[/code:1]
The Recurse parameter in this cmdlet does not work properly.
Bref, sans autre commentaire
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
D'accord, mais juste un p'tit alors : Il faut le prendre comme une avancée, maintenant MS documente ce qui ne fonctionne pas...Bref, sans autre commentaire
6ratgus écrit:
Tenter au préalable un sendMessage WM_Close est préférable, avant de sortir les flingues(enfin si possible) et fermé cette aplli ou la tué
Je reconnais que cela nécessite tout de même du code avancé.<br><br>Message édité par: Laurent Dardenne, à: 10/04/13 13:47
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- LAFFONT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 15
- Remerciements reçus 0
Mais je n'avance pas...
J'ai tenté :
[code:1]
get-childitem \"$patharchiveFull\$archive\" -include * -recurse | Remove-Item
[/code:1]
Mais malheureusement sans le \"-recurse\" du Remove-Item j'obtiens :
Confirmer
L'élément situé à l'emplacement Microsoft.PowerShell.Core\FileSystem::\STUDIO\AKZO
NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\html a des enfants et le paramètre Recurse n'a pas été spécifié. Si vous
continuez, tous les enfants seront supprimés avec l'élément. Êtes-vous sûr de vouloir continuer ?
[O] Oui [T] Oui pour tout [N] Non Non pour toutSuspendre [?] Aide (la valeur par défaut est « O ») :
Et lorsque l'on valide :
<br><br>Message édité par: llaffont, à: 11/04/13 09:15Remove-Item : Impossible de supprimer l'élément D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\html\images\Th
umbs.db : Autorisation insuffisante pour effectuer l'opération.
Au niveau de ligne : 1 Caractère : 107
+ get-childitem \"D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\" -include * -recurse | Remove-Item <<<<
+ CategoryInfo : PermissionDenied: (Thumbs.db:FileInfo) [Remove-Item], IOException
+ FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand
Remove-Item : Le répertoire D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\html\images ne peut pas être suppr
imé, car il n'est pas vide.
Au niveau de ligne : 1 Caractère : 107
+ get-childitem \"D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\" -include * -recurse | Remove-Item <<<<
+ CategoryInfo : WriteError: (images:DirectoryInfo) [Remove-Item], IOException
+ FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand
Remove-Item : Le répertoire D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\html ne peut pas être supprimé, ca
r il n'est pas vide.
Au niveau de ligne : 1 Caractère : 107
+ get-childitem \"D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\" -include * -recurse | Remove-Item <<<<
+ CategoryInfo : WriteError: (D:\STUDIO\AKZO ...ailing MeC\html:DirectoryInfo) [Remove-Item], IOException
+ FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand
Connexion ou Créer un compte pour participer à la conversation.
- LAFFONT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 15
- Remerciements reçus 0
Le problème vient principalement des fichier .DS_Store de MAC et des Thumbs.db de Windows.
La commande suivante me permet de résoudre cela.
del /f /s /q /a:H \"._*\",\".ds*\"
Mais c'est une commande Ms_Dos et je ne vois pas comment l'introduire dans mon code.
J'ai tenté ligne 57 de rajouter ceci :
[code:1]Invoke-Expression 'del /f /s /q /a:H \"._*\",\".ds*\"' + \"$patharchiveFull\$archive\"[/code:1]
Mais j'obtiens :
Invoke-Expression : Impossible de trouver un paramètre positionnel acceptant l'argument « D:\STUDIO\AVIVA\_2013_ARCHIVE
S\13_6583 OP MAI ».
Au niveau de ligne : 1 Caractère : 18
+ Invoke-Expression <<<< 'del /f /s /q /a:H \"._*\",\".ds*\"' \"D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 OP MAI\"
+ CategoryInfo : InvalidArgument: ([Invoke-Expression], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeExpressionCommand
Une idée de plus pour palier à ça ?
Message édité par: llaffont, à: 11/04/13 11:56<br><br>Message édité par: llaffont, à: 11/04/13 11:56
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
llaffont écrit:
Bon j'ai une piste de résolution.
Le problème vient principalement des fichier .DS_Store de MAC et des Thumbs.db de Windows.
Les fichiers cachés peuvent être de la partie si tu ajoutes le paramètre '-Force' à la Cmdlet 'Get-ChildItem'.
[code:1]
PS>Get-Help get-childitem -parameter force
-Force [<SwitchParameter>]
Permet à l'applet de commande d'obtenir des éléments, tels que des fichiers cachés ou système qui, sinon, ne sont p
as accessibles par l'utilisateur. L'implémentation est différente d'un fournisseur à l'autre. Pour plus d'informati
ons, consultez about_Providers. Même en utilisant le paramètre Force, l'applet de commande ne peut pas remplacer le
s restrictions de sécurité.
Obligatoire ? false
Position ? named
Valeur par défaut
Accepter l'entrée de pipeline ? false
Accepter les caractères génériques ? false
[/code:1]
La commande suivante me permet de résoudre cela.
del /f /s /q /a:H \"._*\",\".ds*\"
Mais c'est une commande Ms_Dos et je ne vois pas comment l'introduire dans mon code.
J'ai tenté ligne 57 de rajouter ceci :
[code:1]Invoke-Expression 'del /f /s /q /a:H \"._*\",\".ds*\"' + \"$patharchiveFull\$archive\"[/code:1]
Mais j'obtiens :
Invoke-Expression : Impossible de trouver un paramètre positionnel acceptant l'argument « D:\STUDIO\AVIVA\_2013_ARCHIVE
S\13_6583 OP MAI ».
Au niveau de ligne : 1 Caractère : 18
+ Invoke-Expression <<<< 'del /f /s /q /a:H \"._*\",\".ds*\"' \"D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 OP MAI\"
+ CategoryInfo : InvalidArgument: ([Invoke-Expression], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeExpressionCommand
Une idée de plus pour palier à ça ?
Message édité par: llaffont, à: 11/04/13 11:56<br><br>Message édité par: llaffont, à: 11/04/13 11:56
Et avec des parenthèses ? C'est commes les maths, les parenthèses sont prioritaires
[code:1]Invoke-Expression ('del /f /s /q /a:H \"._*\",\".ds*\" '+ \"D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 OP MAI\"«»)[/code:1]
Par contre, dans ce cas, tu n'appelleras pas la commande del de CMD mais l'alias de Remove-Item.
[code:1]PS>invoke-expression ('del /f /s /q /a:H \"._*\",\".ds*\" '+ \"D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 O
P MAI\"«»)
Remove-Item : Impossible de trouver un paramètre positionnel acceptant l'argument « /s ».
Au niveau de ligne : 1 Caractère : 4
+ del <<<< /f /s /q /a:H \"._*\",\".ds*\" D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 OP MAI
+ CategoryInfo : InvalidArgument: (:«») [Remove-Item], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand[/code:1]
[code:1]PS>get-alias del
CommandType Name Definition
----
Alias del Remove-Item[/code:1]
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- LAFFONT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 15
- Remerciements reçus 0
Je vais faire une fonction qui cherche et supprime les fichiers caché avec l'option - force
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [RESOLU] Fermer tous les fichier ouverts