具有一个脚本,可以使新的图钉从文件中快速访问文件资源管理器中
这是脚本:
#New pin to quick access in file Explorer from a file
$ShortcutsFile = 'H:\_ProfilBackup\Genveje.txt'
$listFile = Get-Content $ShortcutsFile
$o = new-object -com shell.application -Verbose
foreach ($line in Get-Content $ShortcutsFile) {
if ($line -match $regex) {
$o.Namespace($line).Self.InvokeVerb("pintohome")
}
}
谁能解释它为什么起作用?
我对这句话有些困惑:
foreach ($line in Get-Content $ShortcutsFile) {
if ($line -match $regex)
尝试了其他方法从文件中读取内容。
但是只有在文件中只有一行时,它才起作用。
如果使用上述脚本,我只能使其与文件中的多行一起使用
答案 0 :(得分:0)
至于……
“尝试了其他方法从文件中读取内容。”
...您在说什么其他方式?要读取文件,您要么必须如该帖子所示那样循环,要么将其带入原始文件。如果您尝试处理许多引脚,则意味着循环。该行正在执行的操作。
$regex
只是一个变量,可以将某些字符串与true或false进行比较,但是您不会显示代码的那一部分。
# Read the shortcuts file, one line at a time, to the end of the file
# If any line read, matches the regex string, do something with that match
foreach ($line in Get-Content $ShortcutsFile) {
if ($line -match $regex)
OP的更新
关于您的帖子和用例,可以对此进行调整。
# What is in the file
Get-Content -Path 'C:\Temp\QuickLinks.txt'
c:\scripts
C:\techtools
c:\temp
$ShellObj = New-Object -ComObject shell.application -Verbose
ForEach ($line in (Get-Content -Path 'C:\Temp\QuickLinks.txt'))
{$ShellObj.Namespace($line).Self.InvokeVerb("pintohome")}