批处理脚本文件输出和输入

时间:2014-05-21 21:12:40

标签: file batch-file input output last-modified

我希望获取Windows中目录中每个文件的最后修改日期,将其输出到文本文件,然后将该文本文件的每一行作为输入读取。

以下是我的.bat文件的内容。

@echo off
WMIC DATAFILE WHERE "PATH='\\Users\\n63206\\Desktop\\Project\\'" GET Name, LastModified > out.txt
for /f %%a in (out.txt) do (
echo %%a
)
echo test

运行脚本后,只打印出“test”。当我打开out.txt时,我看到我输出到它的最后修改日期显示正常,如果我创建一个新的文本文件(不能使用out.txt)并在那里手动输入一些行,我的for循环可以打印出来该文件中的所有行。我非常感谢任何建议,以帮助我解决这个问题!

1 个答案:

答案 0 :(得分:0)

问题是生成的文件是UTF-16,小端,BOM前缀文件。也就是说,它每个字符包含两个字节,并以两个字符0xFF 0xFE为前缀。

for /f无法读取此文件。

您的选择是:

1 - 阅读生成的信息

for /f "delims=" %%a in (
    ' wmic datafile where "path='\\Users\\n63206\\Desktop\\Project\\'" get name^,lastmodified '
) do echo %%a

2 - 生成文件后,在读取文件时转换文件

wmic datafile where "path='\\Users\\n63206\\Desktop\\Project\\'" get name,lastmodified > out.txt
for /f "delims=" %%a in ('type out.txt') do echo %%a

3 - 生成文件时转换文件

wmic datafile where "path='\\Users\\n63206\\Desktop\\Project\\'" get name,lastmodified | find /v "" > out.txt
for /f "delims=" %%a in (out.txt) do echo %%a