【发布时间】:2016-09-15 14:13:00
【问题描述】:
我有以下批处理代码,当我双击批处理时代码执行良好,但是当我尝试通过 Windows 任务调度程序运行它时,它只运行部分。我无法理解为什么。
基本上,代码删除了所有行,运行到mysql -e "DELETE FROM software_it.hardware" -u root 并且不再执行。任何帮助都会很棒。
@ECHO OFF
setlocal enabledelayedexpansion
mysql -e "DELETE FROM software_it.hardware" -u root
FOR %%f IN ("*.csv") DO (
set old=%%~dpnxf
set new=!old:\=\\!
mysql -e "load data local infile '"!new!"' into table software_it.hardware COLUMNS TERMINATED BY ',' IGNORE 1 ROWS" -u root
echo %%~nxf DONE
)
【问题讨论】:
-
我的感觉是它不明白它必须从那个特定的文件夹执行!我说的对吗?
-
尝试将
cd %~dp0添加为第一行。这将确保它从批处理文件目录而不是任何默认的 windows 调度程序运行。 -
@FloatingKiwi,
cd /D "%~dp0"更好,因为当前目录可能驻留在不同的驱动器上...
标签: mysql batch-file scheduled-tasks