Я работал над расширением базового пакета для извлечения IP-информации для включения другой информации, относящейся к моему ИТ-отделу на работе. Мой отдел занимается устранением неполадок по всей стране для нашего оборудования Cisco для конечного пользователя и наших серверов. До сих пор у меня есть файл, содержащий подробности ipconfig и MAC-адрес с некоторыми исключениями. Вот мой код до сих пор:
@echo off
echo Listed below is your network IP information and physical MAC address.
echo\
echo I am logged as %UserName%.
echo My computer's name is %ComputerName%.
echo My IP settings are
ipconfig | find "." | find /i /v ""
echo\
echo My Mac address is
getmac | find /i /v "disconnected" | find /i /v "not present"
echo\
echo Provide this information to the IT team.
echo Press the Space bar to close this window.
echo\
pause > nul
Я просматривал здесь и другие подобные сайты сравнительные примеры, которые я мог бы изменить, но, видимо, я просто воняю на вещи, не принадлежащие Cisco. Вот новый код, взятый из другой статьи, в настоящее время как его собственный пакет:
@echo off
Setlocal Enableextensions
Setlocal Enabledelayedexpansion
for /r %%X in (*.URL) do (
set shortcut="%%X"
echo SHORTCUT: !shortcut!
for /f "tokens=2 delims==" %%i in ('findstr URL !shortcut!') do (
set URL=%%i
echo.
echo URL PATH: !URL!
)
echo ----------------------------------------------------------------
echo.
)
:end
Pause
Вывод, который я получаю от запуска это:
SHORTCUT: "C:\Users\***\Desktop\Application Catalog, IE only.url"
URL PATH: http://***/cmapplicationcatalog/#/SoftwareLibrary/AppListPageView.xaml
----------------------------------------------------------------
SHORTCUT: "C:\Users\***\Desktop\Test Yahoo.url"
URL PATH: http://www.yahoo.com/
----------------------------------------------------------------
Press any key to continue . . .
*** это пути, которые я усек.
Когда я получу это, я объединю их вместе. То, что я пытаюсь получить во 2-й партии, - это отдельный файл на каждом компьютере, который мы называем CDK Drive, для извлечения его целевой информации. В цели указан полный IP-адрес (http://*. **. */), Который мне нужен. Целевым типом ярлыка является Приложение, а сам тип файла - Ярлык (.lnk). Пример цели:
"C:\Program Files (x86)\Internet Explorer\iexplore.exe" http://***.**.209.42/bin/start/wsStart.application
Я пытаюсь дать как можно больше конкретной информации, чтобы я мог получить наиболее точную помощь в этом.
Заранее спасибо.
ОБНОВЛЕНИЕ: Итак, я добился небольшого прогресса, используя Powershell и выполняя его в своей партии. Пока это мой код Powershell, и он «почти» работает так, как задумано.
function Get-StartMenuShortcuts
{
$Shortcuts = Get-ChildItem -Recurse "$Env:C:\Users\alexandm\Desktop\Batching" -Include *.lnk
$Shell = New-Object -ComObject WScript.Shell
foreach ($Shortcut in $Shortcuts)
{
$Properties = @{
ShortcutName = $Shortcut.Name
Target = $Shell.CreateShortcut($Shortcut).targetpath
}
New-Object PSObject -Property $Properties
}
[Runtime.InteropServices.Marshal]::ReleaseComObject($Shell) | Out-Null
}
$Output = Get-StartMenuShortcuts
$Output
При запуске из моего пакета, я получаю вывод, который показывает мне основной целевой путь, который происходит с iexplore.exe, но он не дает мне полный целевой путь, включая IP-адрес, который мы добавляем. Есть идеи, что мне не хватает?