目前有個需求就是
先利用以下的指令壓縮每天的D槽資料
"C:\Program Files\WinRAR\WinRAR.exe" a -ilog -or -ep2 -rr5p -ibck -m5 -isnd -agYYYYMMDD-HH C:\Backup.rar "d:\"
所以壓縮檔的名稱可能會是 Backup20130205-12.rar或是Backup20130205-20.rar之類的
再來把壓縮檔上傳到FTP SERVER
open 192.168.0.100
test
0000
prompt
cd /
mput Backup20130205-12.rar或是Backup20130205-20.rar
bye
但在mput那邊的動態檔名卡住了,找了很多資料目前只能拼湊出上述的指令,請問有辦法可以解決這樣的問題嗎??
感謝各位~
你的這種 FTP 上傳模式我也有用
二個檔一個 bat 一個 txt
bat 的部份先到來源檔案的來源目錄
例
d:
cd\123\abc\
:start
ftp -s:upload.txt
txt 的部份
open 192.168.0.100
test
0000
prompt
cd \
mput Backup*.rar
bye
所以你的問題在二處
感謝 jay0123 大 回答
1.請問有幾種FTP上傳模式呢?
2.剛剛經過jay0123 大 的說明,終於可以順利連上了,但.....
不懂為什麼會出現"/" 的提示
麻煩 jay0123 大
感謝您
CD / 應該是沒錯
另外我有問題(舉手),
mput Backup*.rar 的話,那已經上傳過的檔案會變怎樣?
沒錯測試過到根目錄是用 cd /
而我的是 cd 123
因為我希望要複製 FTP Server 的 123 底下
沒用複製到根目錄
另已經上傳過的檔案若一樣檔名會被覆蓋
感謝 jay0123 大 回答
目前如果想要整合所有指令如下:
"C:\Program Files\WinRAR\WinRAR.exe" a -ilog -or -ep2 -rr5p -ibck -m5 -isnd -agYYYYMMDD-HH C:\Backup.rar "d:\"
ftp -s:upload.txt
如果用系統管理員身份執行此bat檔,第一行可以順利建立壓縮檔但第二行就會有錯
如果用一般身份執行此bat檔,第一行會無法建立壓縮檔但第二行可以順利執行
請問有辦法提權或者用什麼方法整合指令呢?
我不想分太多.bat檔,怕使用者會亂刪...
預期目標:建立、上傳、刪除都在同一個.bat檔
可能要麻煩 jay0123 大 頭痛一下了,感謝你!
a70706z提到:
"C:\Program Files\WinRAR\WinRAR.exe" a -ilog -or -ep2 -rr5p -ibck -m5 -isnd -agYYYYMMDD-HH C:\Backup.rar "d:\"
ftp -s:upload.txt
如果用系統管理員身份執行此bat檔,第一行可以順利建立壓縮檔但第二行就會有錯
錯誤的原因是什麼? 沒有指定絕對路徑嗎?
系統管理員身份執行此bat檔,第一行可以順利建立壓縮檔但第二行就會有錯
錯是什麼...........
一般身份執行此bat檔,第一行會無法建立壓縮檔但第二行可以順利執行
我想無法建立的原因請確認一下建立壓縮檔的目錄是否有寫入的權限或
C:\Program Files\WinRAR\ 目錄一般身份是否有完成控制的權限
如果用一般身分執行bat檔,會發生C:\Backup20120209-15.rar存取被拒
如果給bat檔系統管理員的權限會發生開啟指令檔upload.txt時發生錯誤
a70706z提到:
如果給bat檔系統管理員的權限會發生開啟指令檔upload.txt時發生錯誤
那就是沒有指定絕對路徑造成的.
我看你的指令壓出來的結果每天都會是 c:\backup.rar ,
並沒有如你所說的Backup20130205-12.rar
改一下你的批次檔,壓縮成 c:\backup.rar 後, 再去 rename
rename c:\backup.rar c:\Backup-%date:~0,4%-%date:~5,2%-%date:~8,2%.rar
上傳部分改成底下這樣
mput Backup-%date:~0,4%-%date:~5,2%-%date:~8,2%.rar
感謝 vino1 大 回答
但是我執行會出現Backup日期-時間.rar耶?!
執行完會變成以下圖案
我試的環境是 XP .. 你的看起來是 win7 或是 2008 對吧
家裡沒 win7 的電腦..我明天上班再試試看囉~
<pre class="c" name="code">Backup-%date:~0,4%-%date:~5,2%-%date:~8,2%.rar
上面這段只能在批次檔裡會被「轉換」成 Backup-2013-02-06.rar
在你的 ftp 指令檔 upload.txt 裡並不會被轉換
所以會找不到該檔案
是很合理的
看起來是因為: ftp 是另外的程式, 而不能直接用 command 提供的變數方式.
有其他網友問過類似的問題, 班考看看:
http://ithelp.ithome.com.tw/question/10064417
差別是先把 command 的變數存在 ftp 命令檔內, ftp 才能正確處理檔名.
我會這樣做耶
批次檔會做這些事情
壓縮檔案產生檔案 Backup-%date:~0,4%-%date:~5,2%-%date:~8,2%.rar
然後 echo open 192.168.0.100 > upload.txt
echo 其他指令 >> upload.txt
echo mput Backup-%date:~0,4%-%date:~5,2%-%date:~8,2%.rar >> upload.txt
然後再 ftp -s:upload.txt
還有另一種更懶惰的方法
<pre class="c" name="code">
1.壓縮,存檔到 d:\temp 目錄下
2.用同一個 ftp 指令檔,mput d:\temp目錄下所有檔案
3.將 d:\temp 目錄下所有檔案 搬到 d:\backup 目錄下
這樣 ftp 就不用管他什麼動態檔名了
以後萬一有更多不同名稱的壓縮檔,也不必修改 ftp 指令
感謝各位 大大 的熱情回復
小弟在想...如果不要分這麼多.bat檔的話,有什麼方式可以把建立壓縮檔、上傳、刪除壓縮檔這幾個功能放在同一個.bat檔裡嗎?
因為怕會被使用者亂刪...
感謝各位大大!
利用 winrar 定時備份,最大的『盲點』就是 -ag 這個功能
long long time ago,我也很喜歡這個功能,但是後來我才發現,這是個不利『每日定時修份』的功能,因為當你要每日定時備份時,雞蛋不能放在一個籃子來,你一定會用到 copy 的功能,在不知道檔名的情況下,你要如何備份?這是最大的問題
後來放棄 -ag 這個指令後,整個就簡單了
你還是用固定的檔名進行壓縮,利用 batch 語法取得目前的時間,在copy 檔案時,再進行檔名的修改。
如此一來,檔名就是在你的控制之後,要copy, del, ftp put 都不是太大的問題。