我想创建一个批处理文件,将reg键导出到服务器上的文件夹,但该文件还需要在之前和之后执行一些检查。
目前我有:
regedit /e "\\pdc\users\%username%\application data\printer registration.reg" "HKEY_CURRENT_USER\Software\Generic"
以上工作完全可以导出注册表项,但是由于这个批处理文件将变成一个登录脚本,我希望它更聪明一点。
1:需要评估该目录中是否已存在“ Printer Registration.reg ”。如果该文件不存在,则必须继续创建该文件“ Printer Registration.reg ”然后进入下面的编号“#2”。
如果文件已存在,则脚本必须将注册表项导出到名为“ Printer Registration2.reg ”的文件,然后检查刚刚创建的文件是否大于625kb。如果文件大于625kb,或者与“ Printer Registration.reg ”已存在的文件大小相同,请删除“ Printer Registration2.reg ”。< / p>
如果小于625kb并且文件大小与“ Printer Registration.reg ”不同,则必须删除“ Printer Registration.reg ”并重命名“< strong> Printer Registration2.reg “to” Printer Registration.reg “。
#2:然后必须将生成的文件复制到用户的Windows 7桌面。
如果有人能帮助我完成这项任务,我将永远感激不尽。
此致
答案 0 :(得分:0)
你可以尝试这样的事情,
@echo off
setlocal enabledelayedexpansion
net use A: "\\pdc\users\%username%\application data\" /persistent:no >> nul
set maxbytesize=625000
Set File1=printer_registration.reg
Set File2=printer_registration2.reg
:FILE_CHECK
if exist "\\pdc\users\%username%\application data\printer registration.reg" (
regedit /e "\\pdc\users\%username%\application data\printer registration2.reg" "HKEY_CURRENT_USER\Software\Generic"
) else (
regedit /e "\\pdc\users\%username%\application data\printer registration.reg" "HKEY_CURRENT_USER\Software\Generic"
GOTO Copy_Final
)
:CHECK SIZE
CD A:
FOR /F "usebackq" %%A IN ('%file1%') DO set size1=%%~zA
FOR /F "usebackq" %%B IN ('%file2%') DO set size2=%%~zB
:Compare
if %size2% GTR %maxbytesize% (
Del "\\pdc\users\%username%\application data\printer_registration2.reg"
goto Copy_Final
)
if %size2% EQU %size1% (
Del "\\pdc\users\%username%\application data\printer_registration2.reg"
goto Copy_Final
) ELSE (
Del "\\pdc\users\%username%\application data\printer_registration.reg"
Ren "\\pdc\users\%username%\application data\printer_registration2.reg" "\\pdc\users\%username%\application data\printer_registration.reg"
goto Copy_Final
)
:Copy_Final
Copy "\\pdc\users\%username%\application data\printer registration.reg" %userprofile%\desktop
net use A: /delete /y