【问题标题】:File not deleting TCL文件不删除 TCL
【发布时间】:2013-11-04 22:26:33
【问题描述】:

有些东西在说谎……

请记住,当我手动运行脚本时,这会按预期工作,但在通过任务调度程序运行时不会。

我有一个 TCL 脚本,它应该检查网络驱动器上是否存在文件,如果存在则将其删除。我这样做:

if {[file exists X:/path/to/file.txt]} {
    log_output "Deleting file X:/path/to/file.txt"
    file delete -force X:/path/to/file.txt
}

我注意到通过任务计划程序运行时该文件从未被删除。所以我又进行了一次检查,试图获得更多信息。

if {[file exists X:/path/to/file.txt]} {
    log_output "File X:/path/to/file.txt NOT DELETED!"
} else {
    log_output "File X:/path/to/file.txt DELETED!"
}

我的输出是:

Deleting file X:/path/to/file.txt
File X:/path/to/file.txt DELETED!

第二行确认该文件实际上被报告为已删除,因为存在检查失败。最后,我运行一个生成新文件的命令。

exec myProgram --outFile X:/path/to/file.txt

再一次,奇怪的是当我手动运行这个脚本时,它工作得很好。但是,当我将它设置为通过任务计划程序运行(使用 Win7)时,即使输出日志显示旧文件是:

Deleting file X:/path/to/file.txt
File X:/path/to/file.txt DELETED!

当我检查文件的日期和时间戳时,它总是从我上次执行手动运行时开始。我认为这更多是权限错误,但这没有意义。为什么它会报告为已删除并且仍然保持不变?

为了彻底,我尝试了其他一些解决方法。我没有通过命令将文件写入网络驱动器,而是尝试在本地写入:

if {[file exists C:/path/to/file.txt]} {
    log_output "Deleting file C:/path/to/file.txt"
    file delete -force C:/path/to/file.txt
}
if {[file exists C:/path/to/file.txt]} {
    log_output "File C:/path/to/file.txt NOT DELETED!"
} else {
    log_output "File C:/path/to/file.txt DELETED!"
}

exec myProgram --outFile C:/path/to/file.txt

然后将其复制到网络驱动器:

file copy -force C:/path/to/file.txt X:/path/to/file.txt
file copy -force C:/path/to/file.txt X:/path/to/file1.txt

我明白了:

Deleting file X:/path/to/file.txt
File X:/path/to/file.txt DELETED!
Deleting file C:/path/to/file.txt
File C:/path/to/file.txt DELETED!

不过果然,旧文件还在,新文件'file1.txt'不存在了……

同样,手动运行总是会成功。

【问题讨论】:

  • 计划任务中的文件映射很难。使用 UNC 路径。 (//machine/share/path/to/file.txt)
  • 是的,我也试过了。结果相同。可按预期进行手动运行。由任务计划程序运行时失败,即使输出日志显示文件已删除。
  • 定时任务是否有权限删除文件?
  • 是的。它具有完全权限。

标签: tcl scheduled-tasks network-drive


【解决方案1】:

试试这个

1.在变量中设置文件位置或路径为

set way "/XX/XXX".

2.应用这个

if {[file exists $way/file.txt]} {
    exec rm -f $way/file.txt 
}

我希望这会奏效。

【讨论】:

  • “我希望这会奏效”并不是很有说服力。我希望它也有效,如果它有效,我希望提问者会回应它,你会清理它。或许与此同时,您可以解释一下为什么您认为这会奏效?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
  • 2023-04-08
  • 2017-01-06
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多