iT邦幫忙

0

Windows的工作排程器執行無反應

  • 分享至 

  • xImage

我有一個.bat的檔案需要放在工作排程器中定時執行。我如果是直接放在桌面上的話,手動執行時,看起來是執行成功,可是並沒有任何反應。但是我如果是將這個.bat檔案放在例如C:\Tools的資料夾中執行的話,一切都很正常。
Windows的工作排程器對於要啟動程序的檔案位置會有所限制嗎?

看更多先前的討論...收起先前的討論...
bat 呼叫的是執行檔嗎
我猜是呼叫的方式或是中文字或是路徑問題
建議把 bat 內容貼出來看看
player iT邦大師 1 級 ‧ 2022-09-23 14:33:14 檢舉
1.權限 (後期的Windows,桌面是受控資料夾,預設會擋掉一些東西)
2.工作排程執行時用的Windows帳號,通常不會是你登入Windows的帳號,通常它看不見你的桌面
puocheng iT邦新手 5 級 ‧ 2022-09-23 16:03:12 檢舉
以下是bat內容
if %time:~0,2% leq 9 (set hour=0%time:~1,1%) else (set hour=%time:~0,2%)
bcp "DECLARE @return_value int,@strDate varchar(12) SET @strDate=CONVERT(varchar(12),GetDate(),112) EXEC @return_value = [dbo].[aaa] @selDate=@strDate SELECT 'Return Value' = @return_value" queryout C:\Report_%date:~0,4%%date:~5,2%%date:~8,2%%hour%%time:~3,2%%time:~6,2%.xls -U user -P pwd -d dbname -c

工作排程是設定只有使用者登入才執行並且以最高權限執行
放在桌面手動執行是「直接點兩下」還是是「右鍵以系統管理員身分」?
我也有類似開機會執行的bat檔,但是如果用「右鍵以系統管理員身分」的話,反倒不會正常執行,但是如果是「直接點兩下」,就可以正常執行。
如果你的工作排程是user登入後才會執行,你可以試著把bat檔丟到「啟動」資料夾,這樣user登入就會自動執行bat,你也可以省去設定工作排程的這一個動作。
puocheng iT邦新手 5 級 ‧ 2022-09-26 09:12:24 檢舉
我是直接點兩下來來手動執行。會需要建立工作排程是因為這項工作要晚上下班後才執行,可不想為了這個而每天加班
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
小處成就大事
iT邦研究生 1 級 ‧ 2022-09-26 11:30:51

我自己測試了一下
設定與你的相同「使用者登入才執行」「以最高權限執行」
檔案的路徑是:
C:\Users\abcd\Desktop\中文中文中文.cmd
並且設定成每間隔5分鐘就啟動一次
上述這樣是會正常執行的

但是路徑如果帶有中文,例如
C:\Users\abcd\Desktop\新資料夾\中文中文中文.cmd
工作排程就不會正常啟動

你的路徑中是不是有中文名稱呢?(檔案是中文名不影響執行)

看更多先前的回應...收起先前的回應...
puocheng iT邦新手 5 級 ‧ 2022-09-26 11:32:59 檢舉

沒有中文哦!檔案是直接放在桌面上,如C:\Users\abcd\Desktop\filename.bat

@puocheng
嗯...請問你的OS是?我的為Win10 21H1

puocheng iT邦新手 5 級 ‧ 2022-09-27 09:02:08 檢舉

我在以下的OS環境中都試過
Windows Server 20202
Windows 11 Pro 21H2

@puocheng
請問一下,工作排程器中會有「上次執行結果」
請問你這個工作排程的「上次執行結果」是什麼訊息?

puocheng iT邦新手 5 級 ‧ 2022-09-28 08:49:35 檢舉

執行成功但是後面有0X1的訊息

我要發表回答

立即登入回答