Description du raccourci Windows en nom du raccourci

0

J'ai beaucoup de raccourcis et pour le moment, les noms ne sont pas très significatifs.

Je dois les renommer pour que le nom du raccourci soit égal à la description du raccourci.

enter image description here

Il s'agit d'environ 1000 fichiers. Existe-t-il un moyen d'effectuer une opération par lots ou une automatisation?

Arete
la source
Si vous connaissez PowerShell, vous pouvez probablement comprendre cela .
Vinayak

Réponses:

0

Je pense aussi que votre approche n'est pas réalisable. Le lot / vbscript suivant ne m'a donné qu'un petit pourcentage de renommage utiles (@Vinayak j'ajoute un -Whatif à la copie ne peut pas commenter) Le lot renvoie les commandes renommées que vous pouvez rediriger vers un fichier tel que «DoRenames.cmd» et après l’exécution de la révision.

::ListLnkProps.cmd:::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off&setlocal enabledelayedexpansion
:: create .\ListLnkProps.vbs
for /f "tokens=1 delims=:" %%A in (
  'findstr /I /N "##ListLnkProps" ^<"%~f0"') do set /A ln#=%%A - 1
more +%ln#% "%~f0" >"%~dpn0.vbs"

:: List.lnk file properties in curent folder and subfolders
for /f "delims=" %%A in (
  'dir /A-D /b /s *.lnk'
) do cscript //nologo "%~dpn0.vbs" "%%A"
goto :eof

' ##ListLnkProps.vbs
set WshShell = WScript.CreateObject("WScript.Shell")
File = WScript.Arguments.Unnamed(0)
set Lnk = WshShell.CreateShortcut(File)
NewName =  Lnk.Description & ".lnk"
If Len(Lnk.Description) > 8 Then
  wscript.Echo "Ren " & chr(34) & File & chr(34) & " " & _
                        chr(34) & NewName & chr(34) 
End If
set Lnk = Nothing

Modifier l'exemple de sortie ajouté

> q:\test\2016-11\05\ListLnkProps.cmd
Ren "C:\Users\UserName\Desktop\Google Chrome.lnk" "Internetzugriff.lnk"
Ren "C:\Users\UserName\Desktop\On-Screen Keyboard.lnk" "Zeigt eine Tastatur an, die von einer Maus oder einem Umschalteingabegerät gesteuert wird..lnk"
Ren "C:\Users\UserName\Desktop\Programm_Links\Alarm.lnk" "Digital Alarm Clock.lnk"
Ren "C:\Users\UserName\Desktop\Programm_Links\Avira.lnk" "Avira starten.lnk"
Ren "C:\Users\UserName\Desktop\Programm_Links\Bitvise SSH Client.lnk" "Bitvise SSH Client L7.15 - a general-purpose SSH client: supports tunneling (manual and via integrated proxy), SFTP file transfer, bridging of FTP clients to SFTP, remote console access and remote administration of Bitvise SSH Server (WinSSHD)..lnk"
Ren "C:\Users\UserName\Desktop\Programm_Links\calibre - E-book management.lnk" "Manage your e-book collection and download news.lnk"
Ren "C:\Users\UserName\Desktop\Programm_Links\calibre 64bit - E-book management.lnk" "Manage your e-book collection and download news.lnk"
Ren "C:\Users\UserName\Desktop\Programm_Links\CDBurnerXP.lnk" "CDBunerXP.lnk"

HTH

LotPings
la source
Merci pour le conseil! Comme vous pouvez le constater, je n'ai pas beaucoup utilisé Powershell.
Vinayak
0

Grâce à La réponse de JasonMArcher , vous pouvez faire quelque chose comme ceci pour chaque raccourci dans le dossier en utilisant Powershell:

$lnk = "path\to\shortcut.lnk"
$dest = $Env:Userprofile + "\Desktop\"
$shell = New-Object -COM WScript.Shell
Copy-Item $lnk $($dest + 
(Get-Item $shell.CreateShortcut($lnk).TargetPath).VersionInfo.FileDescription + ".lnk") -WhatIf

Retirer le -WhatIf à la fin lorsque vous utilisez le script.

P. S. Si vous connaissez Powershell, n'hésitez pas à améliorer ma réponse.

Vinayak
la source
Cela est étrange. Au lieu d'utiliser la description comme nom de fichier, il utilise plutôt le commentaire. Je ne sais pas pourquoi, mais j'ai besoin de la description comme nom de fichier, pas du commentaire.
Arete
@Arete Je crois que c'est parce que la description est stockée dans le fichier EXE désigné par le raccourci. Le raccourci lui-même semble ne contenir que le commentaire.
Vinayak
@Arete Ce que tu veux, c'est (Get-Item 'path\to\exe').VersionInfo.FileDescription
Vinayak