powershell?
ich brauche etwas hilfe, ich soll ein PS skript machen das Folgende funktion hat:
Wird ein oder mehrere Ordner den 'Arbeits-Ordner' Hinzugefügt werden diese Automatisch auch dem Schnellzugriff hinzugefügt. Also alle Ordner die in dem 'Arbeits-Ordner' sind, sollen in den quick access.
$o = new-object -com shell.application
$o.Namespace('c:\My Folder').Self.InvokeVerb("pintohome")
das hab ich, weiter komme ich nicht
2 Antworten
Um ein PowerShell-Skript zu erstellen, das den Schnellzugriff automatisch mit allen Ordnern im Arbeitsordner aktualisiert, könntest du Folgendes tun:
- Erstelle eine Funktion mit dem Namen
Add-ToQuickAccess
- , die einen Ordnerpfad als Parameter entgegennimmt. In der Funktion verwende die oben gezeigte Syntax, um den Schnellzugriff mit dem angegebenen Ordner zu aktualisieren.
- In der Hauptroutine des Skripts, erstelle eine Schleife, die alle Ordner im Arbeitsordner durchläuft und die
Add-ToQuickAccess
- -Funktion für jeden Ordner aufruft.
- Führe das Skript aus, um den Schnellzugriff mit allen Ordnern im Arbeitsordner zu aktualisieren.
Hier ist ein Beispiel für ein PowerShell-Skript, das diese Funktionalität implementiert:
function Add-ToQuickAccess($folderPath) {
# Erstelle ein COM-Objekt für den Shell-Namespace
$shell = new-object -com shell.application
# Füge den angegebenen Ordner dem Schnellzugriff hinzu
$shell.Namespace($folderPath).Self.InvokeVerb("pintohome")
}
# Pfad zum Arbeitsordner
$workFolder = "C:\My Folder"
# Durchlaufe alle Ordner im Arbeitsordner
foreach ($folder in (Get-ChildItem $workFolder -Directory)) {
# Füge den Ordner dem Schnellzugriff hinzu
Add-ToQuickAccess -folderPath $folder.FullName
}
Hoffe, das hilft.
Ich würde die Ordner über Get-ChildItem ansprechen und dann innerhalb einer ForEach-Schleife die gewünschten Operationen durchführen. Ich habe das Snippet nicht getestet, da mir gerade die Zeit dazu fehlt. Aber über die Interation mit einer ForEach-Schleife solltest du deinem gewünschten Ziel näher kommen.
$folders = "C:\MyFolders"
$folder = Get-ChildItem -Path $folders -Directory
foreach ($folder in $folders) {
$o = new-object -com shell.application
$o.Namespace($folder).Self.InvokeVerb("pintohome")
}
Du kannst alternativ eine function definieren, die du dann je nach Bedarf aufrufst.
# define function
function Run-AddFoldersToQuickAccess($source) {
$source = $folders
$folder = Get-ChildItem -Path $folders -Directory
foreach ($folder in $folders) {
$o = new-object -com shell.application
$o.Namespace($folder).Self.InvokeVerb("pintohome")
}
}
# use function
Run-AddFoldersToQuickAccess 'C:\MyFolder'
- Microsoft: PowerShell - Get-ChildItem
- Microsoft: PowerShell - ForEach-Schleife
- Microsoft: PowerShell - Function
LG medmonk