คำอธิบายทางลัดของ Windows เป็นชื่อทางลัด


0

ฉันมีทางลัดมากมายและตอนนี้ทางลัดไม่มีชื่อที่มีความหมายมาก

ฉันต้องเปลี่ยนชื่อพวกเขาเพื่อให้ชื่อทางลัดเท่ากับคำอธิบายของทางลัด

enter image description here

มันมีไฟล์มากกว่า 1,000 ไฟล์ มีวิธีการดำเนินการแบทช์หรือระบบอัตโนมัติหรือไม่?


หากคุณรู้จัก PowerShell คุณก็สามารถทำได้ คิดออก .
Vinayak

คำตอบ:


0

ฉันคิดว่าวิธีการของคุณไม่สามารถทำได้ ชุด / vbscript ต่อไปนี้ให้ฉันเพียงเล็กน้อยของการเปลี่ยนชื่อที่มีประโยชน์ (@Vinayak ฉันจะผนวก a -Whatif เพื่อคัดลอกไม่สามารถแสดงความคิดเห็น) แบทช์เอาท์พุทคำสั่งเปลี่ยนชื่อคุณอาจเปลี่ยนเส้นทางไปยังไฟล์เช่น´DoRenames.cmd` และหลังจากดำเนินการแก้ไข

::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

แก้ไขเอาต์พุตตัวอย่างต่อท้าย

> 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


ขอบคุณสำหรับทิป! อย่างที่คุณบอกฉันไม่ได้ใช้ Powershell มาก
Vinayak

0

ขอบคุณที่ คำตอบของ JasonMArcher คุณสามารถทำสิ่งนี้สำหรับทุกทางลัดในโฟลเดอร์โดยใช้ 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

ลบ -WhatIf ในตอนท้ายเมื่อใช้สคริปต์

P. S. หากคุณรู้จัก Powershell อย่าลังเลที่จะปรับปรุงคำตอบของฉัน


มันแปลก ๆ. แทนที่จะใช้คำอธิบายเป็นชื่อไฟล์ แต่จะใช้ความคิดเห็นแทน ไม่แน่ใจว่าทำไม แต่ฉันต้องการคำอธิบายเป็นชื่อไฟล์ไม่ใช่ความคิดเห็น
Arete

@Arete ฉันเชื่อว่าเป็นเพราะคำอธิบายถูกเก็บไว้ในไฟล์ EXE ที่ชี้ไปทางลัด ทางลัดนั้นดูเหมือนจะมีเพียงความคิดเห็น
Vinayak

@Arete สิ่งที่คุณต้องการคือ (Get-Item 'path\to\exe').VersionInfo.FileDescription
Vinayak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.