Her*_*ill 6 windows script shortcuts windows-8
我有数百个指向目标的网站的快捷方式,如下所示:
C:\Users\Herb\AppData\Local\Google\Chrome\Application\chrome.exe www.somesite.com/foo
我刚刚升级到 Windows 8,Chrome 可执行文件现在存储在 Program Files 中;所以为了让这些快捷方式工作,我必须把它们改成这样:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" www.somesite.com/foo
有什么办法可以自动执行此更改吗?我是一名程序员,但在 Windows 脚本方面做得并不多。
Ter*_*nce 15
我最近发现自己遇到了类似的问题,并决定按照最初的要求对链接进行脚本修改。也许其他人会发现这很有用。这是一个基于前面提到的链接的 PowerShell 脚本,但有一些改进(仅在前导路径名上触发,修改现有链接而不是删除/创建,具有试运行模式等)。
我对 PowerShell 不是特别了解,所以我欢迎任何改进建议:
$oldPrefix = "\\OldServer\Archive\"
$newPrefix = "\\NewServer\Archive\"
$searchPath = "Z:\"
$dryRun = $TRUE
$shell = new-object -com wscript.shell
if ( $dryRun ) {
write-host "Executing dry run" -foregroundcolor green -backgroundcolor black
} else {
write-host "Executing real run" -foregroundcolor red -backgroundcolor black
}
dir $searchPath -filter *.lnk -recurse | foreach {
$lnk = $shell.createShortcut( $_.fullname )
$oldPath= $lnk.targetPath
$lnkRegex = "^" + [regex]::escape( $oldPrefix )
if ( $oldPath -match $lnkRegex ) {
$newPath = $oldPath -replace $lnkRegex, $newPrefix
write-host "Found: " + $_.fullname -foregroundcolor yellow -backgroundcolor black
write-host " Replace: " + $oldPath
write-host " With: " + $newPath
if ( !$dryRun ) {
$lnk.targetPath = $newPath
$lnk.Save()
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13591 次 |
最近记录: |