我正在尝试运行一个批处理脚本来查找特定文件的最后修改日期。我正在使用类似于以下脚本的内容:
@echo off
set mainDir=\\subdomain.myintranet.net\c$
set txtFile=%mainDir%\tmp.txt
set txtFile2=%mainDir%\tmp2.txt
set "bodyText=^<p^>Hello,^<br /^>^<br /^>"
if exist %txtFile% (
for %%X in (%txtFile%) do (set fileDate=%%~tX)
set "bodyText=%bodyText%tmp.txt file updated as of %fileDate%^<br /^>"
) else (
set "bodyText=%bodyText%Warning: Issues finding %txtFile%.^<br /^>"
)
if exist %txtFile2% (
for %%X in (%txtFile2%) do (set fileDate2=%%~tX)
set "bodyText=%bodyText%tmp2.txt file updated as of %fileDate2%^<br /^>"
) else (
set "bodyText=%bodyText%Warning: Issues finding %txtFile2%.^<br /^>"
)
set "bodyText=%bodyText%^</p^>"
echo %bodyText% > %mainDir%\mylog.txt
测试这个示例代码,我发现它有时有效,有时无效。发生的事情是找到文件,但fileDate
变量返回空白。
我也尝试fileDate=
在脚本的开头放置一个空变量,但这不起作用。
如果重要:我将批处理脚本连接到每天运行的 SQL Server 2000 作业。批处理文件和日志文件与数据库驻留在同一台服务器上,但是批处理脚本完全限定了我在示例中显示的文件位置(这是因为如果我想从我的桌面运行批处理文件,它将检查/更新正确的文件)。
在此先感谢,约瑟夫
编辑:
输出应如下所示:
Hello,
tmp.txt file updated as of 9/19/2012 2:24 PM
tmp2.txt file updated as of 9/19/2012 10:02 AM
而我有时得到的是:
Hello,
tmp.txt file updated as of
tmp2.txt file updated as of
其他时候我可能会得到:
Hello,
tmp.txt file updated as of 9/19/2012 2:24 PM
tmp2.txt file updated as of
弄清楚出了什么问题是令人困惑的。