मेरे पास शॉर्टकट्स का एक समूह है और अभी शॉर्टकट्स के बहुत सार्थक नाम नहीं हैं।
मुझे उनका नाम बदलने की आवश्यकता है ताकि शॉर्टकट नाम शॉर्टकट के विवरण के बराबर हो।
यह लगभग 1000+ फाइल है। क्या बैच ऑपरेशन या ऑटोमेशन करने का कोई तरीका है?
मेरे पास शॉर्टकट्स का एक समूह है और अभी शॉर्टकट्स के बहुत सार्थक नाम नहीं हैं।
मुझे उनका नाम बदलने की आवश्यकता है ताकि शॉर्टकट नाम शॉर्टकट के विवरण के बराबर हो।
यह लगभग 1000+ फाइल है। क्या बैच ऑपरेशन या ऑटोमेशन करने का कोई तरीका है?
जवाबों:
मुझे भी लगता है कि आपका दृष्टिकोण संभव नहीं है। निम्नलिखित बैच / vbscript ने मुझे केवल उपयोगी नाम का एक छोटा सा प्रतिशत दिया (@Vinayak मैं apppend करना चाहता हूँ-प्रतिलिपि के लिए टिप्पणी नहीं कर सकता) बैच आउटपुट रीनेम का नाम देता है जिसे आप रिविजन एग्जीक्यूट के बाद oDoRenames.cmd`and जैसी फाइल में रीडायरेक्ट कर सकते हैं।
::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 का उपयोग करके फ़ोल्डर में प्रत्येक शॉर्टकट के लिए कुछ ऐसा कर सकते हैं:
$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 को जानते हैं, तो मेरा उत्तर सुधारने के लिए स्वतंत्र महसूस करें।
(Get-Item 'path\to\exe').VersionInfo.FileDescription