【发布时间】:2022-10-16 00:17:20
【问题描述】:
我正在尝试在闪存驱动器上创建一个脚本,以在我们公司的所有计算机上运行多个命令。在这个特定的部分中,我正在尝试运行 AVAST 命令来运行病毒扫描并在晚上 10 点进行更新。我遇到的问题是:为了运行这些命令,我必须导航到 Avast 软件所在的文件夹。事情是每台计算机的驱动器号可能会有所不同......所以我不确定我是否能够使用通配符或者我将如何去做。我当前的脚本是:
echo off
cd "$((get-location).drive.name):\Program Files (x86)\Avast Software"
ashupd.exe/vps
ashupd.exe/program
ashcmd.exe/*
pause
这只会获取当前的驱动器号......这将是我正在运行脚本的闪存驱动器。所以这不好。
【问题讨论】:
-
您在寻找Get-PSDrive 吗?
-
那只是显示驱动器列表,对吗?我可以在我的脚本中使用它吗?我们正在尝试使脚本成为 1-2 次单击并完成某种事情。所以我们不能到处运行该命令来手动为每台计算机找到驱动器......因为我们有数百台计算机,这需要很多时间
-
您通常可以从注册表中获取已安装程序的安装路径。作为有根据的猜测,请使用 RegEdit 查看
HKEY_LOCAL_MACHINE\Software\Avast或HKEY_LOCAL_MACHINE\Software\Wow6432Node\Avast。可能有一个名为InstallPath或类似名称的值。使用 PowerShell,您可以像这样获得它的值:(Get-ItemProperty 'hklm:\Software\Avast' -Name InstallPath).InstallPath -
您需要遍历驱动器并检查您要执行的位置或文件是否实际驻留在其中。如果公司内的计算机安装方式相同,您可能会幸运地使用one of Windows' environment variables 和/或迭代各个驱动器。但是您最好使用已安装软件的注册表项来确定它们的安装路径。