文件无法删除 TCL

3

有些东西在等待着...

请记住,当我手动运行脚本时,它按预期工作,但是当通过任务计划程序运行时则不然。

我有一个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)。 - Johannes Kuhn
是的,我也尝试过那个。结果一样。手动运行正常,但是使用任务计划程序运行时失败,即使输出日志显示文件已被删除。 - radensb
预定任务是否有权限删除文件? - Donal Fellows
是的,它具有完全的权限。 - radensb
1个回答

1

试试这个

1.将文件位置或路径设置为变量,如下:

set way "/XX/XXX".

2.应用此

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

我希望这个能够运行。


“我希望这能行”并不是很有说服力。我也希望它能行,如果它确实能行,那么提问者会回复说它可以,然后你就可以整理一下了。也许在此期间,您可以解释一下为什么您认为这会起作用? - Russia Must Remove Putin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接