通过批处理查询文件写入状态(CMD客户端到BASH服务器)

通过批处理查询文件写入状态(CMD客户端到BASH服务器),bash,batch-file,cmd,Bash,Batch File,Cmd,简短的故事:需要一个方法来获取服务器上使用BASH的文件的写入状态,该方法来自使用CMD batch的客户机 长期潜伏者,第一次海报。我对我正在寻找的内容进行了多次搜索,但还没有找到足够的数据 我正在用CMD编写一个批处理文件,因为客户端可能是任何安装了未知软件包的WinOS[XP-up]。批处理使用puTTY的plink通过SSH连接到服务器。连接到服务器后,plink将执行命令将数据写入新文件。 一旦写入该文件,我就使用PSCP将该文件复制到客户端 到目前为止,一切顺利;我已经成功地完成了这

简短的故事:需要一个方法来获取服务器上使用BASH的文件的写入状态,该方法来自使用CMD batch的客户机

长期潜伏者,第一次海报。我对我正在寻找的内容进行了多次搜索,但还没有找到足够的数据

我正在用CMD编写一个批处理文件,因为客户端可能是任何安装了未知软件包的WinOS[XP-up]。批处理使用puTTY的plink通过SSH连接到服务器。连接到服务器后,plink将执行命令将数据写入新文件。 一旦写入该文件,我就使用PSCP将该文件复制到客户端 到目前为止,一切顺利;我已经成功地完成了这一切

该文件的创建是即时的,但写入所有数据所需的时间未知/可变。因此,我需要一种自动化的方法来确定文件何时完成,然后复制它。在我的情况下,仅仅使用超时/睡眠XX秒是不可行的


到目前为止,我采取的方法是使用stat-c“%s”filemane重复获取文件大小,并在循环中运行该方法,直到grab1 eq grab2,这表示一个完整的文件。我发现这很困难,因为我无法将stat的输出放入CMD批处理中来处理它

Q1:这个统计结果进入CMD循环是最好的方法吗?也许BASH中存在某种东西

问题2:如果问题1为真,关于如何将stat结果作为变量放入CMD批处理以解析/分析数据,有什么想法吗

提前感谢您的建议和时间。
DCT使用命令写入文件,并使用临时文件名写入文件。因此,如果它将被称为xyz.txt,使用文件名tmpxyz.txt.tmp编写,那么最后一步将是重命名

这样,您就可以检查命名文件是否存在


我发现,给文件起一个唯一的名字通常是个好主意,可能包括日期和时间

为什么不能让命令在PLINK退出之前完成文件写入?我无法控制程序创建/写入文件。一旦我发出makeafile命令,它会返回一条成功消息,但是文件不一定完成。如果成功消息连接到文件完成,我就不必解决这个问题。我发现这很困难,因为我无法将stat的输出放入CMD批处理中来处理它。我建议使用WSH/VBScript而不是CMD来处理类似的事情,因为您描述了将命令的输出获取到CMD.EXE以进行处理的困难。通过将stat字符串保存为本地文件,然后将该文件拉入批处理中的变量,我能够将stat的输出获取到CMD中。我仍在研究比较文件a和文件b的逻辑…缓慢,但取得了进展。谢谢谢谢你回复本。我需要确定文件何时完成写入。如果程序没有完成对文件的写入,那么传输它对我没有好处。