小编Ben*_*Ben的帖子

需要帮助编写批处理文件以读取带有空分隔符的MS Access .ldb锁定文件

我正在尝试创建一个批处理文件来读取Microsoft Access .ldb锁定文件.锁定文件包含计算机名称和用户名列表.我想提取计算机名称,并最终针对外部命令运行它们.

批处理文件的格式是单行,其中(1)计算机名称(2)为NULL字符(Hex 00)(3)约20个空格(4)用户名(5)NULL字符(6)约20空间重复.

Notepad ++中的示例,(NUL)表示Hex 00:

COMPUTER0123(NUL)                     Admin(NUL)                     COMPUTER0507(NUL)                     Admin(NUL)

我已经尝试了几种方法FOR来读取文件,但无法通过第一个计算机名称.

setlocal EnableDelayedExpansion
set file=database.ldb

for /F %%a in ('type %file%') do (
    echo %%a
    )

对于大多数Access数据库,文件中的用户名是Admin.我已经能够用来FIND告诉我文件中出现了多少次"Admin"(加1).

for /f "delims=" %%n in ('find /c /v "Admin" %file%') do set "len=%%n"
set "len=!len:*:=!"
echo %len% (minus 1) computer names to process 
<%file% (
  for /l %%l in (1 1 !len!) do (  
    set "line="
    set /p "line="
    echo(!line!)    
    )
)
Run Code Online (Sandbox Code Playgroud)

迭代找到的行不起作用,可能是因为文件中只有一行(没有回车). …

ms-access parsing command batch-file

5
推荐指数
1
解决办法
548
查看次数

如何从 Access 中的对象获取准确的 LastUpdated 日期/时间?

我试图从 Access 对象中检索LastUpdated日期,有时它返回 DateCreated 值。

我看到查询MSysObjects 的结果相同:

SELECT MSysObjects.Name, 
    Switch([Type]=5,'Query',[Type]=-32768,'Form',[Type]=-32764,'Report',[Type]=-32766,'Macro',[Type]=-32761,'Module') AS ObjectType, 
    MSysObjects.DateUpdate 
FROM MSysObjects
WHERE (((Left$([Name],1))<>'~') AND ((MSysObjects.Type) In (5,-32768,-32764,-32766,-32761)))
ORDER BY MSysObjects.DateUpdate DESC;
Run Code Online (Sandbox Code Playgroud)

查询结果

或从立即窗口使用DAO

? CurrentDb.Containers("Forms").Documents("frm_POC_Assignment_Override").LastUpdated

即时窗口

正确的日期显示在导航窗格中(如果您选择查看方式 | 详细信息)

导航窗格

并出现在对象属性对话框中:

对象属性对话框

我使用的是 Access 2016 Office 365,32 位。

ms-access vba

1
推荐指数
1
解决办法
719
查看次数

标签 统计

ms-access ×2

batch-file ×1

command ×1

parsing ×1

vba ×1