windows - 获取快捷方式的目标文件并将该文件放在新目录中
问题描述
我正在尝试从具有许多 .lnk 快捷方式的文件夹中获取目标文件,并使用 Powershell 将它们放入新文件夹中。我有以下脚本并且它运行但输出文件夹不显示任何内容:
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "<shortcut folder>*.lnk" | ForEach-Object {$WScript.CreateShortcut($_.FullName).TargetPath} | Out-File -FilePath "<Destination Folder>"
解决方案
分支我对你的评论。你不能输出一个字符串,这是目标路径中的内容。这不是一个真实的文件。如果这是您需要的,您可以将该字符串输出到文本文件中,但这听起来不像您所追求的。
只需逐步浏览每个部分,以确保您得到您所期望的并在复制语句中使用该目标。
# Validate the lnk data
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" | Format-Table -AutoSize
<#
# Results
Directory: C:\Users\postanote\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 28-Oct-18 00:52 1293 ClearIEData.lnk
#>
# Extract the lnk target path
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" |
ForEach-Object {$WScript.CreateShortcut($_.FullName).TargetPath}
<#
# Results
D:\Tools\ClearIEData.cmd
#>
# Take needed action on the lnk target path info
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" |
ForEach-Object {
Copy-Item -Path $($WScript.CreateShortcut($_.FullName).TargetPath) -Destination 'D:\temp' -WhatIf
}
<#
# Results
What if: Performing the operation "Copy File" on target "Item: D:\Tools\ClearIEData.cmd Destination: D:\temp\ClearIEData.cmd".
#>
如果对结果满意,请注释掉或删除 -WhatIf 并再次运行代码以执行操作。
Get-ChildItem -Path 'D:\temp' -Filter 'ClearIEData.cmd'
<#
# Results
Directory: D:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 05-Mar-20 15:10 2571 ClearIEData.cmd
#>
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" |
ForEach-Object {
$WScript.CreateShortcut($_.FullName).TargetPath | Out-File -FilePath 'D:\Temp\LinkFileData.txt' -Append -WhatIf
}
Get-Content -Path 'D:\Temp\LinkFileData.txt'
<#
# Results
D:\Tools\ClearIEData.cmd
#>
推荐阅读
- javascript - 我们的 Openfaas/GKE 函数 (javascript) 运行了一段时间,然后开始失败,然后缓慢爬行
- python-3.x - 将单个列表转换为具有偶数和奇数关键字的 2 个字典
- php - 从 php 中的 csv 文件中读取第 n 行
- c - 如何在铿锵声中为 llvm ir 生成 phi 指令?
- anaconda - 我无法运行 Spyder(5.0.0 版)
- javascript - 如何使用 jQuery 为多个文本框添加相同的工具提示
- python - 格式化熊猫显示函数输出的最简单方法,每行和列之间的黑色边框线作为 Jupyter 上的网格
- python - 如何在没有功能的脚本上使用 pytest
- search - 使用 VBA 代码从工作表的值范围内搜索字符串。我的数据从 C 列开始,行数是动态的
- c - c - 跨平台的 unicode 进度条