Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将批处理文件写入输入路径和文件名,获取文件的大小和日期,然后进行排序_Batch File - Fatal编程技术网

Batch file 将批处理文件写入输入路径和文件名,获取文件的大小和日期,然后进行排序

Batch file 将批处理文件写入输入路径和文件名,获取文件的大小和日期,然后进行排序,batch-file,Batch File,我已经创建了一个带有路径和文件名的文件。 我通过命令行将文件名一次传递给批处理文件。 我使用%%1、%%t1、%%z1来获得时间和大小值。 我想将每条记录写入一个文件进行排序。时间和文件大小将是不同的,我想保存最好的信息版本 我在批处理文件中遇到问题,无法获取大小和日期。我正在尝试测试读取文件信息时是否出错。当我查看参数时,它总是包含传递给批处理文件的路径文件名。打印%%t1和%%z1值时,如果一切正常,我会看到正确的值,否则打印只显示时间=和大小=。因此,我尝试使用文件大小或时间值来确定是否存

我已经创建了一个带有路径和文件名的文件。 我通过命令行将文件名一次传递给批处理文件。 我使用%%1、%%t1、%%z1来获得时间和大小值。 我想将每条记录写入一个文件进行排序。时间和文件大小将是不同的,我想保存最好的信息版本

我在批处理文件中遇到问题,无法获取大小和日期。我正在尝试测试读取文件信息时是否出错。当我查看参数时,它总是包含传递给批处理文件的路径文件名。打印%%t1和%%z1值时,如果一切正常,我会看到正确的值,否则打印只显示时间=和大小=。因此,我尝试使用文件大小或时间值来确定是否存在错误

我尝试了许多不同的方法来使用IF cmd打印出是否发生了错误。我已经有一段时间没有使用批处理文件了,我无法找出问题的原因

这是批处理文件的一个片段(包括我尝试过的一些内容):

我得到:

  • )在这个时候是出人意料的
  • 命令的语法不正确
  • 这是一个意外的时刻
  • 无法初始化设备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
)