Batch file 将批处理文件写入输入路径和文件名,获取文件的大小和日期,然后进行排序
我已经创建了一个带有路径和文件名的文件。 我通过命令行将文件名一次传递给批处理文件。 我使用%%1、%%t1、%%z1来获得时间和大小值。 我想将每条记录写入一个文件进行排序。时间和文件大小将是不同的,我想保存最好的信息版本 我在批处理文件中遇到问题,无法获取大小和日期。我正在尝试测试读取文件信息时是否出错。当我查看参数时,它总是包含传递给批处理文件的路径文件名。打印%%t1和%%z1值时,如果一切正常,我会看到正确的值,否则打印只显示时间=和大小=。因此,我尝试使用文件大小或时间值来确定是否存在错误 我尝试了许多不同的方法来使用IF cmd打印出是否发生了错误。我已经有一段时间没有使用批处理文件了,我无法找出问题的原因 这是批处理文件的一个片段(包括我尝试过的一些内容): 我得到:Batch file 将批处理文件写入输入路径和文件名,获取文件的大小和日期,然后进行排序,batch-file,Batch File,我已经创建了一个带有路径和文件名的文件。 我通过命令行将文件名一次传递给批处理文件。 我使用%%1、%%t1、%%z1来获得时间和大小值。 我想将每条记录写入一个文件进行排序。时间和文件大小将是不同的,我想保存最好的信息版本 我在批处理文件中遇到问题,无法获取大小和日期。我正在尝试测试读取文件信息时是否出错。当我查看参数时,它总是包含传递给批处理文件的路径文件名。打印%%t1和%%z1值时,如果一切正常,我会看到正确的值,否则打印只显示时间=和大小=。因此,我尝试使用文件大小或时间值来确定是否存
- )在这个时候是出人意料的
- 命令的语法不正确
- 这是一个意外的时刻
- 无法初始化设备PRN。'else'未被识别为内部或外部命令
- str1未被识别为内部或外部命令。。str1此时出乎意料
任何帮助都将不胜感激。提前感谢。您要查找的短语是
,如果定义了。定义不是一个词
必须使用set
命令在变量中存储值,因此第一行必须是set str1=%~t1
if
语句需要它们的(
与if
在同一行。类似地,)
、else
和(
必须都在同一行
Print
从技术上讲是一个有效的批处理命令,但它会将文档发送到打印机;批处理使用echo
将文本显示到屏幕上,并自动将换行符追加到回显行中
@echo off
set str1=%~t1
if not defined str1 (
echo AN ERROR OCCURRED FOR THIS FILE
) else (
echo fpath=%~1
echo time=%~t1
echo size=%~z1
)
我终于找到了如何让它工作的方法。我发现一篇帖子指出,括号必须是那种精确的格式,否则它根本不起作用。即使在语句的IF部分加上括号,也会阻止脚本按预期工作
IF语句本身更容易处理。例如,要检查空参数,以下任一项都有效:
如果“%~t1”==”“(
echo“此文件出现错误/n”
)其他(
echo fpath=%~1
回显时间=%~t1
回波大小=%~z1
)defined不是一个词。你想测试defined,就像如果没有定义一样。PowerShell会让你的生活更轻松。这就是我在你16小时前发布的内容。你为什么忽视我的答案?
@echo off
set str1=%~t1
if not defined str1 (
echo AN ERROR OCCURRED FOR THIS FILE
) else (
echo fpath=%~1
echo time=%~t1
echo size=%~z1
)