Je cherche à corriger un script PowerShell que je possède et à lui ajouter des fonctionnalités supplémentaires. Actuellement, il fonctionne comme prévu: lorsqu'un fichier est enregistré dans un répertoire, l'élément est déplacé dans un nouveau.
Ce que je cherche à ajouter, c’est au lieu de simplement écraser le fichier existant, mais de le renommer yyyyMMdd
. Les fichiers sont tous identiques et portent toujours le même nom / extension. Il serait donc judicieux d’ajouter ceci, ce qui serait très utile pour un contrôle de version semi-automatique.
$folder = 'C:\scripts\test'
$filter = '*.*' # <-- set this according to your requirements
$destination = 'H:\Office Documents\text_move'
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubdirectories = $true # <-- set this according to your requirements
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$path = $Event.SourceEventArgs.FullPath
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp"
$dirname = [io.path]::GetDirectoryName($folder)
$filename=[io.path]::GetFileNameWithoutExtension($file)
$ext = [io.path]::GetExtension($file)
$newpath = "$destination\$filename\$(get-date -f yyyyMMdd)$ext"
Move-Item $path -Destination $destination -verbose
}
Je comprends que je dois ajouter get-date
quelque chose à la ficelle , mais je ne peux pas sembler si longtemps que je sache comment ou où ajouter cela pour que cela fonctionne comme je le pense.
powershell
Matt King
la source
la source
Réponses:
Vous pouvez essayer d'utiliser cette logique pour définir le nom du fichier.
Inspiré par cette réponse
la source
C'est ce que j'ai fini par utiliser pour le faire fonctionner. J'ai eu beaucoup d'erreurs variables ainsi que de nombreux problèmes concernant le besoin de certaines choses. J'ai eu de l'aide pour l'écrire ainsi que des suggestions. La bûche d’observateur a beaucoup aidé, car elle m’a donné une idée de ce que je faisais et de ce qui se passait.
Dans un fichier batch, cela me permet de le lancer sans interruption en arrière-plan. Si quelqu'un me le suggère mieux, je suis tout ouïe.
Merci pour l'aide et pour m'avoir poussé dans la bonne direction, je pense que c'était beaucoup plus difficile que nécessaire.
la source