Question [RESOLU] Fermer tous les fichier ouverts

Plus d'informations
il y a 12 ans 11 mois #14539 par Matthew BETTON
Bon, par curiosité je viens quand même de jeter un oeil à l'aide, sous PowerShell Version 3 :

[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 :P<br><br>Message édité par: Matthew BETTON, à: 9/04/13 20:29

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 11 mois #14547 par Laurent Dardenne
Matthew BETTON écrit:

Bref, sans autre commentaire

D'accord, mais juste un p'tit alors : Il faut le prendre comme une avancée, maintenant MS documente ce qui ne fonctionne pas...

6ratgus écrit:

(enfin si possible) et fermé cette aplli ou la tué

Tenter au préalable un sendMessage WM_Close est préférable, avant de sortir les flingues :)
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.

Plus d'informations
il y a 12 ans 11 mois #14560 par LAFFONT
Réponse de LAFFONT sur le sujet Re:Fermer tous les fichier ouverts
Merci pour votre participation.
Mais je n'avance pas...

J'ai tenté :
[code:1]
get-childitem \&quot;$patharchiveFull\$archive\&quot; -include * -recurse | Remove-Item
[/code:1]

Mais malheureusement sans le \&quot;-recurse\&quot; du Remove-Item j'obtiens :

Confirmer
L'élément situé à l'emplacement Microsoft.PowerShell.Core\FileSystem::D:\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 tout Suspendre [?] Aide (la valeur par défaut est « O ») :


Et lorsque l'on valide :

Remove-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 \&quot;D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\&quot; -include * -recurse | Remove-Item &lt;&lt;&lt;&lt;
+ 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 \&quot;D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\&quot; -include * -recurse | Remove-Item &lt;&lt;&lt;&lt;
+ 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 \&quot;D:\STUDIO\AKZO NOBEL\_2012_ARCHIVES\12_5958_emailing MeC\&quot; -include * -recurse | Remove-Item &lt;&lt;&lt;&lt;
+ CategoryInfo : WriteError: (D:\STUDIO\AKZO ...ailing MeC\html:DirectoryInfo) [Remove-Item], IOException
+ FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand

<br><br>Message édité par: llaffont, à: 11/04/13 09:15

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 11 mois #14561 par LAFFONT
Réponse de LAFFONT sur le sujet Re:Fermer tous les fichier ouverts
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.

La commande suivante me permet de résoudre cela.

del /f /s /q /a:H \&quot;._*\&quot;,\&quot;.ds*\&quot;

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 \&quot;._*\&quot;,\&quot;.ds*\&quot;' + \&quot;$patharchiveFull\$archive\&quot;[/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 &lt;&lt;&lt;&lt; 'del /f /s /q /a:H \&quot;._*\&quot;,\&quot;.ds*\&quot;' \&quot;D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 OP MAI\&quot;
+ 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.

Plus d'informations
il y a 12 ans 11 mois #14562 par Matthew BETTON
Bonjour,

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&gt;Get-Help get-childitem -parameter force

-Force [&lt;SwitchParameter&gt;]
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 \&quot;._*\&quot;,\&quot;.ds*\&quot;

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 \&quot;._*\&quot;,\&quot;.ds*\&quot;' + \&quot;$patharchiveFull\$archive\&quot;[/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 &lt;&lt;&lt;&lt; 'del /f /s /q /a:H \&quot;._*\&quot;,\&quot;.ds*\&quot;' \&quot;D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 OP MAI\&quot;
+ 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&lt;br&gt;&lt;br&gt;Message édité par: llaffont, à: 11/04/13 11:56


Et avec des parenthèses ? C'est commes les maths, les parenthèses sont prioritaires ;) La chaine sera donc construite avant d'être transmise comme paramètre à Invoke-Expression, en tant que premier paramètre.

[code:1]Invoke-Expression ('del /f /s /q /a:H \&quot;._*\&quot;,\&quot;.ds*\&quot; '+ \&quot;D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 OP MAI\&quot;«»)[/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&gt;invoke-expression ('del /f /s /q /a:H \&quot;._*\&quot;,\&quot;.ds*\&quot; '+ \&quot;D:\STUDIO\AVIVA\_2013_ARCHIVES\13_6583 O
P MAI\&quot;«»)
Remove-Item : Impossible de trouver un paramètre positionnel acceptant l'argument « /s ».
Au niveau de ligne : 1 Caractère : 4
+ del &lt;&lt;&lt;&lt; /f /s /q /a:H \&quot;._*\&quot;,\&quot;.ds*\&quot; 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&gt;get-alias del

CommandType Name Definition
----
Alias del Remove-Item[/code:1]

@ +

Matthew

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 11 mois #14564 par LAFFONT
Réponse de LAFFONT sur le sujet Re:Fermer tous les fichier ouverts
:( Non ! Mais j'ai pas de bol ...
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.

Temps de génération de la page : 0.052 secondes
Propulsé par Kunena