每隔30秒钟后台静默全自动复制备份一次正在编辑的纯文本文档-2022年8月31日

      每隔30秒钟后台静默全自动复制备份一次正在编辑的纯文本文档-2022年8月31日

 

每隔30秒钟后台静默全自动复制备份一次正在编辑的纯文本文档-2022年8月31日

REM
REM 此脚本文件的文件路径和文件名是 C:\Prog\EmEditor\_一键制作自解压可执行软件包.bat
REM
REM  此批处理脚本文件最后编辑日期  2022年8月31日                                                                                                        

if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" (
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -agYYYY.MM.DD_HH-MM-SS -m5 -r -sfx -y -z.\_自解压脚本命令.txt _Single.exe *.*
)else (
"C:\Program Files\WinRAR\WinRAR.exe" a -agYYYY.MM.DD_HH-MM-SS -m5 -r -sfx -y -z.\_自解压脚本命令.txt _Single.exe *.*
)

每隔30秒钟后台静默全自动复制备份一次正在编辑的纯文本文档-2022年8月31日

;
; 此脚本命令文件的文件路径和文件名是 C:\Prog\EmEditor\_自解压脚本命令.txt
;
;下面的注释包含自解压脚本命令
;Path=解压缩路径
;Presetup=解压缩前运行
;Setup=解压缩后运行
;Silent=静默方式:1-隐藏全部 2-隐藏启动对话框 空着不设置-显示全部
;Overwrite=覆盖方式:1-覆盖全部文件 2-跳过已存在的文件 空着不设置-覆盖前询问
;请选择正确的图标并保存正确的配置文件

Path=C:\Prog\EmEditor\
Setup=C:\Prog\EmEditor\_AHKScript.exe
Silent=2
Overwrite=2

每隔30秒钟后台静默全自动复制备份一次正在编辑的纯文本文档-2022年8月31日

;
; 此脚本文件的文件路径和文件名是 C:\Prog\EmEditor\_AHKScript.ahk
;
; 使用方法:新建文本文件 U:\010-EmEditorText\EmEditorText-V2191.txt
; U:为存放最新编辑的文本文档所在的磁盘盘符,此脚本会搜索固态移动硬盘或者银灿IS903量产U盘的盘符
; 双击运行用批处理脚本创建的WinRAR自解压程序  _Single2022.08.31.exe
;


; --- 设置此脚本的运行环境 ---

; 当脚本已经运行时允许它再次运行,让旧实例退出运行.
#SingleInstance,force

; 试图启动已经运行的脚本会被忽略,让旧实例继续运行.
; loop,10
; {
; DetectHiddenWindows,On
; Sleep,10
; IfWinExist,QQ595076941_Everything
; ExitApp
; }
; Gui, Show, Hide,QQ595076941_Everything

;强制自身以 ansi + 管理员权限 运行。
runwith("admin","ansi")

; 让脚本持续运行(即直到用户关闭或遇到 ExitApp).
#Persistent

; 设置此脚本的窗口命令, 内置函数和控制流语句可以 "看见" 隐藏的窗口.
DetectHiddenWindows,On

; 设置在类似 WinWait 命令中 WinTitle 参数的匹配模式为窗口标题的任意位置包含 WinTitle 才能匹配.
SetTitleMatchMode,2

; 不检查空变量是否为环境变量
#NoEnv

; SendInput 突出的速度和可靠性, 通常为发送键击和鼠标点击的首选方法.
SendMode Input

; 改变脚本的当前工作目录为当前脚本所在目录的绝对路径. 不包含最后的反斜杠(根目录同样如此).
SetWorkingDir %A_ScriptDir%

; 搜索需要编辑的,唯一的,最新的,纯文本文件
DriveGet, MyDrivelist, List
; MsgBox,%list%
loop,Parse,MyDrivelist
{
	; MsgBox,%A_LoopField%
	IfExist,%A_LoopField%:\010-EmEditorText\EmEditorText-V2191.txt
	{
		FileCopy,%A_LoopField%:\010-EmEditorText\EmEditorText-V2191.txt,%A_LoopField%:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		Run,C:\Prog\EmEditor\EmEditor.exe %A_LoopField%:\010-EmEditorText\EmEditorText-V2191.txt
		WinWaitActive,EmEditor ahk_class EmEditorMainFrame3,,9
		{
			FileCreateDir,%A_LoopField%:\010-EmEditorText\Backup
			ControlGetText, MyEmText, EmEditorView1, EmEditor ahk_class EmEditorMainFrame3
			FileDelete,%A_LoopField%:\010-EmEditorText\Backup\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
			FileAppend,%MyEmText%,%A_LoopField%:\010-EmEditorText\Backup\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		}


		SetTimer,AutoBackupTimer,30000
	break
}
}
;
AutoBackupTimer()
{
	IfWinExist,EmEditor ahk_class EmEditorMainFrame3
	{
		FileCreateDir,C:\010-EmEditorText\
		FileCreateDir,D:\010-EmEditorText\
		FileCreateDir,E:\010-EmEditorText\
		FileCreateDir,F:\010-EmEditorText\
		FileCreateDir,G:\010-EmEditorText\
		FileCreateDir,H:\010-EmEditorText\
		FileCreateDir,I:\010-EmEditorText\
		ControlGetText, MyEmText, EmEditorView1, EmEditor ahk_class EmEditorMainFrame3
		FileDelete,C:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileAppend,%MyEmText%,C:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileDelete,D:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileAppend,%MyEmText%,D:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileDelete,E:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileAppend,%MyEmText%,E:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileDelete,F:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileAppend,%MyEmText%,F:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileDelete,G:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileAppend,%MyEmText%,G:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileDelete,H:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileAppend,%MyEmText%,H:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileDelete,I:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
		FileAppend,%MyEmText%,I:\010-EmEditorText\EmEditorText-V2191-%A_YYYY%-%A_MM%-%A_DD%.txt
	}
}








; 强制自身进程以 管理员权限 或 普通权限 或 ANSI 或 U32 或 U64 版本运行。
; 例1: runwith("admin","u32") 强制自身以 u32 + 管理员权限 运行。
; 例2: runwith("","ansi")     强制自身以 ansi 版本运行(权限不变)。
; 例3: runwith("normal")      强制自身以 普通权限 运行(版本不变)。
runwith(RunAsAdmin:="Default", ANSI_U32_U64:="Default")
{
	; 格式化预期的模式
	switch, RunAsAdmin
	{
		case "Normal","Standard","No","0":		RunAsAdmin:=0
		case "Admin","Yes","1":								RunAsAdmin:=1
		case "default":												RunAsAdmin:=A_IsAdmin
default:															RunAsAdmin:=A_IsAdmin
	}
switch, ANSI_U32_U64
{
	case "A32","ANSI","A":								ANSI_U32_U64:="AutoHotkeyA32.exe"
	case "U32","X32","32":								ANSI_U32_U64:="AutoHotkeyU32.exe"
	case "U64","X64","64":								ANSI_U32_U64:="AutoHotkeyU64.exe"
	case "default":												ANSI_U32_U64:="AutoHotkey.exe"
default:															ANSI_U32_U64:="AutoHotkey.exe"
	}
; 获取传递给 “.ahk” 的用户参数(不是 /restart 之类传递给 “.exe” 的开关参数)
for k, v in A_Args
{
	if (RunAsAdmin=1)
	{
		; 转义所有的引号与转义符号
		v:=StrReplace(v, "\", "\\")
		v:=StrReplace(v, """", "\""")
		; 无论参数中是否有空格,都给参数两边加上引号
		; Run       的内引号是 "
		ScriptParameters  .= (ScriptParameters="") ? """" v """" : A_Space """" v """"
	}
	else
	{
		; 转义所有的引号与转义符号
		; 注意要转义两次 Run 和 RunAs.exe
		v:=StrReplace(v, "\", "\\")
		v:=StrReplace(v, """", "\""")
		v:=StrReplace(v, "\", "\\")
		v:=StrReplace(v, """", "\""")
		; 无论参数中是否有空格,都给参数两边加上引号
		; RunAs.exe 的内引号是 \"
		ScriptParameters .= (ScriptParameters="") ? "\""" v "\""" : A_Space "\""" v "\"""
	}
}
; 判断当前 exe 是什么版本
if (!A_IsUnicode)
	RunningEXE:="AutoHotkeyA32.exe"
else if (A_PtrSize=4)
	RunningEXE:="AutoHotkeyU32.exe"
else if (A_PtrSize=8)
	RunningEXE:="AutoHotkeyU64.exe"
; 运行模式与预期相同,则直接返回。 ANSI_U32_U64="AutoHotkey.exe" 代表不对 ahk 版本做要求。
if (A_IsAdmin=RunAsAdmin and (ANSI_U32_U64="AutoHotkey.exe" or ANSI_U32_U64=RunningEXE))
	return
; 如果当前已经是使用 /restart 参数重启的进程,则报错避免反复重启导致死循环。
else if (RegExMatch(DllCall("GetCommandLine", "str"), " /restart(?!\S)"))
{
	预期权限:=(RunAsAdmin=1) ? "管理员权限" : "普通权限"
	当前权限:=(A_IsAdmin=1)  ? "管理员权限" : "普通权限"
	ErrorMessage=
	(LTrim
		预期使用: %ANSI_U32_U64%
		当前使用: %RunningEXE%
		预期权限: %预期权限%
		当前权限: %当前权限%
		程序即将退出。
	)
	MsgBox 0x40030, 运行状态与预期不一致, %ErrorMessage%
	ExitApp
}
else
{
	; 获取 AutoHotkey.exe 的路径
	SplitPath, A_AhkPath, , Dir
	if (RunAsAdmin=0)
	{
		; 强制普通权限运行
		switch, A_IsCompiled
		{
			; %A_ScriptFullPath% 必须加引号,否则含空格的路径会被截断。%ScriptParameters% 必须不加引号,因为构造时已经加了。
			; 工作目录不用单独指定,默认使用 A_WorkingDir 。
			case, "1": Run, RunAs.exe /trustlevel:0x20000 "\"%A_ScriptFullPath%\" /restart %ScriptParameters%",, Hide
default: Run, RunAs.exe /trustlevel:0x20000 "\"%Dir%\%ANSI_U32_U64%\" /restart \"%A_ScriptFullPath%\" %ScriptParameters%",, Hide
	}
}
else
{
	; 强制管理员权限运行
	switch, A_IsCompiled
	{
		; %A_ScriptFullPath% 必须加引号,否则含空格的路径会被截断。%ScriptParameters% 必须不加引号,因为构造时已经加了。
		; 工作目录不用单独指定,默认使用 A_WorkingDir 。
		case, "1": Run, *RunAs "%A_ScriptFullPath%" /restart %ScriptParameters%
default: Run, *RunAs "%Dir%\%ANSI_U32_U64%" /restart "%A_ScriptFullPath%" %ScriptParameters%
	}
}
ExitApp
}
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他

AHK时间操作类

2022-8-29 18:16:58

其他

省吾-ahk待办工具发布贴

2022-8-30 7:05:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索