我已经从多个地方提取了一些代码,并制作了以下代码。
此代码的功能基本上是读取所有软件并将其保存为 csv 格式,以便我可以进一步使用它。我希望代码将输出保存在域上共享的另一台计算机上的文件夹中。下面是代码:
@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
set OutputFile=C:\Domo\%computername%.csv
echo "Computer","Key","Version","Name","Publisher">"%OutputFile%"
call :getsw "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall"
call :getsw "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall"
call :getsw "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
ENDLOCAL
exit /b
:getsw
for /F "delims=" %%g in ('reg query "%~1" 2^>NUL') do (
set "_swRegKey=%%~g"
set "_swName="
set "_swVers="
set "_swPub="
for /F "tokens=1,2,*" %%G in ('
reg query "%%~g" /V DisplayName 2^>NUL ^| findstr /I "DisplayName"
') do set "_swName=%%~I"
for /F "tokens=1,2,*" %%G in ('
reg query "%%~g" /V DisplayVersion 2^>NUL ^| findstr /I "DisplayVersion"
') do set "_swVers=%%~I"
for /F "tokens=1,2,*" %%G in ('
reg query "%%~g" /V Publisher 2^>NUL ^| findstr /I "Publisher"
') do set "_swPub=%%~I"
call :echosw
)
exit /b
:echosw
if "!_swName!!_swVers!"=="" (
echo "%COMPUTERNAME%","unknown","!_swRegKey!","","">>"%OutputFile%"
) else (
echo "%COMPUTERNAME%","!_swRegKey!","!_swVers!","!_swName!","!
_swPub!">>"%OutputFile%"
)
exit /b
问题是当我将输出文件(第 3 行)的位置从 C:\Domo\%computername%.csv 更改为像 \Win-p0sck5u2hqd\csv\%computername%.csv 这样的网络位置时
这给出了一个错误,说在执行批处理文件时访问被拒绝。有什么我想念的吗。请帮助我了解它为什么不起作用,是否有任何解决方案。
这个位置 \Win-p0sck5u2hqd\ 可以从我的运行命令访问。