次のバッチコードがあります。コードを実行するとバッチをダブルクリックしますが、Windowsタスクスケジューラで実行しようとすると部分的にしか実行されません。なぜ私は理解できません。ウィンドウ上のタスクスケジューラを使用してバッチファイルが完全に実行されない
基本的にコードはすべての行ergoを削除し、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
)
を!私は正しい? – SS97
最初の行に 'cd%〜dp0'を追加してみてください。これは、デフォルトのウィンドウスケジューラが使用しているものではなく、バッチファイルのディレクトリから実行されることを確認します。 – FloatingKiwi
@FloatingKiwi、現在のディレクトリが別のドライブに存在する可能性があるので、 'cd/D"%〜dp0 "'がより良いです... – aschipfl