繁体   English   中英

批处理文件:如果文件不存在,请创建;如果文件不存在,请创建一个新文件,比较两个文件,然后删除最大的文件

[英]Batch File: If file doesn't exist, create, if file does exist create a new one, compare two files, and delete the largest one

我想创建一个批处理文件,该文件将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 ”。

如果小于625kb,并且文件大小与“ Printer Registration.reg ”不同,则必须删除“ Printer Registration.reg ”,并将“ Printer Registration2.reg ”重命名为“ Printer Registration.reg ”。

#2:然后必须将生成的文件复制到用户Windows 7桌面。

如果有人可以帮助我完成这项任务,我将永远感激不已。

问候

你可以尝试这样的事情,

@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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM