文件未删除TCL

文件未删除TCL,tcl,scheduled-tasks,network-drive,Tcl,Scheduled Tasks,Network Drive,有东西在撒谎 请记住,当我手动运行脚本时,这会按预期工作,但在通过任务调度器运行脚本时则不会 我有一个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 } 我注意到,通过任务调度器

有东西在撒谎

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

我有一个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”不存在

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

试试这个

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

set way "/XX/XXX".
2.应用此

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

我希望这能起作用。

计划任务中的文件映射很困难。使用UNC路径。(
//machine/share/path/to/file.txt
)是的,我也试过了。同样的结果。在手动运行时按预期工作。由任务计划程序运行时失败,即使输出日志显示文件已删除。计划任务是否具有删除文件的权限?是。它拥有完全的权限。“我希望这会起作用”不是很有说服力。我希望它也能起作用,如果它起作用了,提问者会,我希望,回答它起作用了,你会把它清理干净。也许在此期间,你可以解释一下为什么你认为这会奏效?