【发布时间】:2019-09-26 15:26:49
【问题描述】:
我有一个包含 4 个命令的批处理脚本,如下所示
sqlcmd (truncate table in database)
del "path to existing csv to delete"
"path to my .vbs script" "file path to xls file to convert" "file path to where csv is to be created"
"File path to Python" "File path to python script to read csv into database"
当我双击批处理文件时它运行得很好。当我尝试从命令提示符运行批处理文件时,它没有看到要删除的 .csv 文件,我不确定这是为什么,但我认为这对我的目的而言并不重要。
当我从任务调度程序手动运行任务时,它会截断数据库中的表并删除现有的 csv 文件,但没有创建新的 csv 文件,这让我相信它卡在 .vbs 文件上。
我尝试使用 .vbs 脚本创建一个单独的任务,并将 .xls 和 .csv 文件的路径作为参数传递,但它再次运行而不会停止。
我已经尝试添加
@echo off
>log.txt(
the body of my batch script
)
但没有任何内容写入日志。我还尝试添加 cscript 并尝试在调用 .vbs 脚本的批处理文件的行首添加 wscript,并尝试将目录中的开头更改为文件所在的 C:\batch。
上述任何尝试都没有运气。不知道从这里去哪里。
【问题讨论】:
-
尝试在 VBS 文件中添加一些
MsgBox("Start of Script")行以查看它是否完全运行脚本,然后添加更多以查看它有多远。另外,我会检查批处理文件是否以管理员权限执行。当您打开命令提示符时,通常不是。您必须右键单击开始菜单中的命令提示符并选择“以管理员身份运行”。 -
我会添加一个空格字符,从
>log.txt(到>log.txt (。 -
添加了
MsgBox("Start of Script")双击时弹出消息作为批处理文件。我以管理员身份运行命令提示符。 -
@Compo 尝试了您的建议。仍然没有输出。
-
我通过在调用 .vbs 脚本的批处理文件的行前添加
cscript.exe取得了一些进展。它现在完成,但文件没有复制到 csv。日志输出简单说明“Microsoft (R) Windows Script Host Version 5.8 版权所有 (C) Microsoft Corporation。保留所有权利。”
标签: batch-file vbscript taskscheduler