如何在WORD文件名后面自动添加时间?

如何在WORD文件名后面自动添加时间?,第1张

1、首先需要确保Word的宏安全性设置至少为“中”(工具-宏-安全性-中)。\x0d\x0a2、在Word里面新建一个空白文档,给它随便取个名字(比如“我的日逗闹志”)保存一下——这个文档就是你以后日志文档的开端了!(注意,如果你用的是Word 2007的话,需要保存为启用宏的文档*.docm)\x0d\x0a3、键入ALT+F11打开VBA编辑窗口,键入CTRL+R激活左边的“工程 _ Project”面板;\x0d\x0a4、双击工程面板中的“Project (我的日志)\Microsoft Word 对象\ThisDocument”打开代码窗口;粘贴如下代码进去:\x0d\x0aOption Explicit\x0d\x0aDim oLogFileCreator As LogFileCreator\x0d\x0aPrivate Sub Document_Open()\x0d\x0aOn Error Resume Next \x0d\x0aSet oLogFileCreator = New LogFileCreator\x0d\x0aSet oLogFileCreator.WordApplication = Application\x0d\x0aEnd Sub\x0d\x0aPrivate Sub Document_Close()\x0d\x0aOn Error Resume Next\x0d\x0aSet oLogFileCreator.WordApplication = Nothing\x0d\x0aSet oLogFileCreator = Nothing\x0d\x0aEnd Sub\x0d\x0a5、选择菜单“插入-类模块”,然后在工程面板里双击这个刚生成的“Project (我的日志)\类模块\类1”,粘贴如下代码进去:\x0d\x0aOption Explicit\x0d\x0aPublic WithEvents WordApplication As Word.Application\x0d\x0a' 根据需要修改下面引号中的内容作为你日子文件的默认前缀\x0d\x0aPrivate Const c_strFileNamePrefix = "我的日志_"\x0d\x0a\x0d\x0aPrivate Sub WordApplication_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)\x0d\x0aOn Error Resume Next\x0d\x0aDim fso As Object\x0d\x0aDim strOldName As String, strNewName As String \x0d\x0aSet fso = CreateObject("Scripting.FileSystemObject") \x0d\x0astrOldName = ActiveDocument.FullName\x0d\x0astrNewName = fso.BuildPath(fso.GetParentFolderName(strOldName), Format(Now, c_strFileNamePrefix &"yyyy-mm-dd.") &fso.GetExtensionName(strOldName)) \x0d\x0aIf UCase(strNewName) UCase(strOldName) Then\x0d\x0aActiveDocument.SaveAs strNewName\x0d\x0afso.DeleteFile strOldName\x0d\x0aCancel = True\x0d\x0aEnd If \x0d\x0aSet fso = Nothing\x0d\x0aEnd Sub\x0d\x0a6、可以根据需要修改代码中的日志文件名前缀。默认的日志文件名是类似 “我的日志_2009-09-12”这样的山睁罩形式。早清\x0d\x0a7、键入F4打开属性面板,在里面把“(名称)”从“类1”改为“LogFileCreator”。\x0d\x0a8、键入ALT+Q关闭VBA编辑窗口返回Word文档窗口,保存,关闭。\x0d\x0a9、再次重新打开这个文档,如果Word提示是否启用宏,选择启用。\x0d\x0a10、现在你的这个自动按日期保存的日志就可以正常运作了。每次你做完修改后,只要你一保存,它就会根据今天的日期自动把文档保存成类似这样的形式“我的日志_2009-09-12”(前缀“我的日志”可以在上面代码中修改)。

不清楚你的实际文件/情况,仅以问题中的说明及码橡猜测为据;以下代码复亮散制粘贴到记事本,另存为xx.bat,编码选ANSI/GB2312,将多个文件拖放到bat文件图标上运行<# :

cls&echo off&cd /d "%~dp0"&set "self=%~f0"&mode con lines=5000

rem 在多个文件名称开头添加修改日期的前缀字符

>nul chcp 65001

set "tmpfile=%tmp%\t.t"

setlocal enabledelayedexpansion

>"%tmpfile%" echo!cmdcmdline!

endlocal

>nul chcp 936

set #=Any questions&set _=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%_% %z%

powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"

echo%#% +%$%%$%/%_% %z%

pause

exit

#>

$b=[Convert]::FromBase64String("IC0tPiA=")

$c=[Text.Encoding]::Default.GetString($b)

$self=get-item -literal $env:self

$tmpfile=$env:tmpfile

$enc=[Text.Encoding]::GetEncoding('UTF-8')

$text=[IO.File]::ReadAllText($tmpfile, $enc)

$text=$text -replace '^.+?\.(bat|cmd)',''

$text=$text.replace('"','').trim() -replace ' (?=[a-z]:)',"`n"

if($text -ne ''){

    $files=$text -split '[\r\n]+'

    for($i=0$i -lt $files.length$i++){

   迟键旁     if([System.IO.File]::Exists($files[$i])){

            $f=get-item -literal $files[$i] -force

            $prefix=$f.LastWriteTime.toString('yyyyMMdd#')

            $f.FullName+$c+$prefix+$f.Name

        }

    }

}else{write-host 'Drag and drop multiple files onto the bat file icon'}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11969556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存