iT邦幫忙

0

robocopy指令,CMD環境下正常,BAT批次檔執行有問題

  • 分享至 

  • xImage

不好意思,之前好像發到『技術』應該是用發問
我要備份Outlook的檔案到公司的NAS上,指令如下,如果使用CMD直接把指令貼上去執行是正常的
但如果把指令存在記事本,再存成bat、com檔都不行會出現以下畫面

指令:
robocopy "C:\Users\Augustine\Documents\Outlook 檔案" "\192.168.0.2\outlook備份" /E /LOG:C:\紀錄\Outlook-backuplog.txt

有問題的畫面:

開啟CMD模式,貼上指令正常執行的畫面

看更多先前的討論...收起先前的討論...
為什麼你三個指令碼都不同?
你的字元編碼似乎有問題 你是用微軟的記事本嗎?
有用第三方的軟體檢查看看編碼/格式問題
mengze_du iT邦新手 5 級 ‧ 2017-08-20 08:53:17 檢舉
如果bat檔案 是先點滑鼠右鍵,再點選以管理員的身份執行會是那一種狀況
cws0827 iT邦新手 5 級 ‧ 2017-08-21 11:10:34 檢舉
目前點兩下執行,跟按下『以管理員的身分執行』都是黑視窗閃一下就消失了
而且看遠端資料夾是沒有備份的檔案的!~
加 pause 看看指令是不是有報錯 / LOG 檔記錄了什麼
而且你應該是複製到錯的指令了
以中間的為基準
http://imgur.com/FrFQzPG

先確認你的指令都一樣 才能排除問題
lumcrow iT邦新手 4 級 ‧ 2017-08-22 10:08:03 檢舉
windows 語系如果是非中文, 遇到路徑檔名有中文也會這樣
jasonlin268 iT邦研究生 2 級 ‧ 2017-08-22 10:26:17 檢舉
C大會不會您的bat檔可能是取名robocopy.bat,和Robocopy.exe指令同名,所以一直跑loop。
蟹老闆 iT邦大師 1 級 ‧ 2017-08-25 12:50:51 檢舉
1.將記錄檔放到系統碟以外試試
2.若是在NAS上執行該批次檔,將批次檔放到本機試試
3.robocopy對中文及空格似乎不是很友善(自己的經驗),試試來源檔改成無空格及無中文試試
4.都不行就換xcopy上場吧
log 路徑是否將其雙引號起來試試看?
/log:"C:\*.txt"
arsehole iT邦新手 2 級 ‧ 2019-12-15 11:54:59 檢舉
jasonlin268兄說的對
只要檔名是robocopy.bat 就會直接loop
把檔名改掉就可以了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
牛哥
iT邦好手 1 級 ‧ 2017-08-21 10:16:52

苦主的語法有點怪?!
第一點是LOG檔內容,會老是洗掉重寫!
換成"/LOG+:"或是"/UNILOG+:",也許就可能從LOG檔中看出問題點?

此外,有邦友指出了!你batch檔案的文字編碼也許是關鍵所在。
存檔時,留意一下編碼型態吧!
/images/emoticon/emoticon33.gif

看更多先前的回應...收起先前的回應...
cws0827 iT邦新手 5 級 ‧ 2017-08-21 10:44:43 檢舉

原來有Log+的方式,謝謝
我用的是微軟本身的記事本,請問另存的時候編碼格式應該要用哪一個?

jeles51 iT邦研究生 3 級 ‧ 2017-08-21 10:57:47 檢舉

unicode

hon2006 iT邦大師 1 級 ‧ 2017-08-21 14:00:58 檢舉

ansi

cws0827 iT邦新手 5 級 ‧ 2017-08-21 14:11:46 檢舉

不好意思,所有格式我都嘗試過了,依然不行!~

牛哥 iT邦好手 1 級 ‧ 2017-08-22 11:46:06 檢舉

會不會是因為OUTLOOK還在運作,把PST檔鎖住了?
先試試其他路徑的檔案!
驗證指令的可用性吧~

牛哥 iT邦好手 1 級 ‧ 2017-08-22 12:14:36 檢舉

LOG內容?
/images/emoticon/emoticon06.gif

cws0827 iT邦新手 5 級 ‧ 2017-08-22 17:38:38 檢舉

to牛哥
只有閃一下的情況,因為沒有跑,所以也沒有log
Outlook有關閉,依然不會運作,這樣PST檔應該沒有被鎖住吧?

0
eigen
iT邦新手 1 級 ‧ 2017-08-21 14:01:22

要會加 pause 來除錯,不然看不到過程

0
ks1217
iT邦研究生 1 級 ‧ 2017-08-22 17:27:52

建議先連網路磁碟機(192.168.0.2\OUTLOOK備份)後再來做roboopy,CMD路徑問題很多

看更多先前的回應...收起先前的回應...
cws0827 iT邦新手 5 級 ‧ 2017-08-22 17:39:05 檢舉

你這個方法我也試過了,殘念還是不行

ks1217 iT邦研究生 1 級 ‧ 2017-08-22 18:19:13 檢舉

不太可能吧, log路徑請先改到d:\LOG (不要用中文目錄),不能跑也會有log才對.

ks1217 iT邦研究生 1 級 ‧ 2017-08-22 18:21:24 檢舉

DOS時代檔案格式是 8.3碼, 你的中文資料夾應該改為 \Outlook~ ,請先確認8.3格式喔

cws0827 iT邦新手 5 級 ‧ 2017-08-24 10:37:33 檢舉

如果是透過cmd指令確定可執行,但是bat檔不行
另外一提,因為主要是備份outlook已經有找到方法了
Cobian Backup http://www.cobiansoft.com/index.htm
這個軟體可以用,排程也能跑...之前測過很多,排程都跑不起來

0
simon0627
iT邦新手 2 級 ‧ 2017-08-24 15:41:44

看了一下你兩張圖的內容並不一樣
這應該是主要的關係 " "<--用在包覆有空格的路徑
所以確認你的指令是對的吧 測試 Robocopy "有空" "無空" → 失敗

cws0827 iT邦新手 5 級 ‧ 2017-09-26 09:22:48 檢舉

後來再試過,不論有沒有+ ""都會失敗

0
舜~
iT邦高手 1 級 ‧ 2021-01-27 11:10:58

雖然時間有點久了,剛好我也遇到類似的狀況,來分享一下我的解決方式~

  1. 有中文路徑的是否有加上引號 "C:\你好\xxx"
  2. 批次檔是否用ASCII來儲存,若為UTF8的話會出現"系統找不到指定的路徑"

這兩個有注意基本上就沒問題了

我也發生同樣問題,將批次檔轉存ANSCII檔即可。感謝分享!!

我要發表回答

立即登入回答