2011年9月1日 星期四

批次檔下Ftp指令

@echo off

set server=IP
set username=Ftp帳號
set password=Ftp密碼

::取得當日時間
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%

::檔案格式
set File=%YYYYMMDD%*_file*

set n=!!!
set i=!

:Filestart
echo open %server%>>ftp%i%.txt
echo user %username%>>ftp%i%.txt
echo %password%>>ftp%i%.txt
echo hash>>ftp%i%.txt
echo cd 路徑>>ftp%i%.txt
echo mget %File%>>ftp%i%.txt
echo y>>ftp%i%.txt
echo bye>>ftp%i%.txt

::確認是否成功下載,若無,則重新下載
ftp -s:ftp%i%.txt -n>>filerunresult%YYYYMMDD%.txt
if exist *_file* (
goto ok
) else (

::暫停一分鐘後下載
timeout 60

::若無成功下載,重覆三次
set i=%i%!
if %i%==%n% goto ok
goto Filestart
)

:ok
del ftp.txt
goto exit

:exit
exit

Windows批次檔 自動上傳FTP多檔

將UP_SOURCE路徑的所有UP_SUBNAME副檔名的檔案複製到桌面。登入FTP,並把剛才複製的檔案(桌面上)上傳到UP_TARGETDIR指定的目錄。

程式內容如下:


@ECHO OFF
REM ———— Variable Name ———————————
set UP_USERNAME=youruser
set UP_PASSWORD=yourpass
set UP_SERVER_IP=123.123.123.123
set UP_SOURCE=”.\local\path\”
set UP_SUBNAME=”*.sol”
set UP_TARGETDIR=”./”

REM ———— Start Progress ———————————
copy %UP_SOURCE%%UP_SUBNAME%
echo %UP_USERNAME%>> ftp.txt
echo %UP_PASSWORD%>> ftp.txt
echo cd %UP_TARGETDIR%>> ftp.txt
FOR %%X IN (%UP_SUBNAME%) DO (echo put %%X>>ftp.txt)
echo bye>> ftp.txt
ftp -s:ftp.txt %UP_SERVER_IP%
del ftp.txt
pause

windows下自動上傳檔案到FTP

傳輸單個檔案
一、先用記事本編輯一個檔案(ftp.txt)
open ip_address(hostname) /*要連接的ftp*/
userid /*登入id*/
password /*登入pw*/
binary /*以二進制傳送文件,可選項*/
cd remote_directory_path /*ftp上的資料夾路徑*/
put local_filename remote_filename /*將local端的檔案上傳到ftp*/(單一檔案)
get remote_filename local_filename /*將ftp上的檔案下載到local端*/(單一檔案)
bye /*離開ftp*/

二、執行
<Ⅰ>直接在command mode下輸入ftp -s:ftp.txt
<Ⅱ>製成一個批次檔(bat),內容為 ftp -s:ftp.txt,然後排入工作排程!!即可自動執行
ps:批次檔跟txt檔需在同一個資料夾,批次檔命名可以特別些,勿與系統批次檔同名
傳輸多個檔案
一、先用記事本編輯一個檔案(ftp.txt)
open ip_address(hostname) /*要連接的ftp*/
userid /*登入id*/
password /*登入pw*/
prompt /*忽略對話窗,預設回答on*/
cd remote_directory_path /*ftp上的資料夾路徑*/
mput local_directory_pathfile_name /*將local端路徑資料夾的檔案上傳到ftp*/(多個檔案)
mget *.* /*將ftp資料夾路徑的檔案下載到ftp.txt放置的資料夾*/
bye /*離開ftp*/

二、執行
<Ⅰ>直接在command mode下輸入ftp -s:ftp.txt
<Ⅱ>製成一個批次檔(bat),內容為 ftp -s:ftp.txt,然後排入工作排程!!即可自動執行
ps:批次檔跟txt檔需在同一個資料夾,批次檔命名可以特別些,勿與系統批次檔同名

windows ftp bat

例如: test1.bat
內容會如下:
@echo off
set host1=192.168.0.1
echo user xxx yyy > ftp.cmd
echo binary >>ftp.cmd
echo cd zzzzzz >>ftp.cmd
echo mput files >>ftp.cmd
echo bye >>ftp.cmd
ftp -n -v -i %host1% < ftp.cmd
del ftp.cmd


xxx = userid
yyyy=password
files=你要上傳的檔案

備份Mysql資料庫的指令

假設帳號 abc 密碼 1234
要備份的資料庫 my01 my02

D:\AppServ\mysql\bin\mysqladmin.exe -uabc -p1234 flush-logs
D:\AppServ\mysql\bin\mysqldump.exe my01 -uabc -p1234 --opt > my01.sql
D:\AppServ\mysql\bin\mysqldump.exe my02 -uabc -p1234 --opt > my02.sql

Windows FTP 批次檔

先有一個文字檔
內容是逐行的ftp指令
例如:假設帳號abc 密碼1234
檔案名稱 autoupdate.txt

---------------------------------------
open ftp.paoyan.com.tw
abc
1234
prompt
mput D:\backup\DBbakup\backup.txt
bye
----------------------------------------

然後執行以下指令

ftp -s:autoupdate.txt

這樣就會執行 autoupdate.txt 內的逐行指令

ps:dos模式下打ftp指令時
mput D:\backup\DBbakup\backup.txt
會問你 y or no
因此先打 prompt 指令
再打 mput 就不會詢問
批次檔才不會卡在這裡

利用指令 tasklist + taskkill 快速刪除程序

Windows 下,正常人類要刪除某個程序,大部分都利用快速鍵 [Ctrl] + [Shift] + [Esc] 開啟工作管理員來強制結束應用程式,今天發現 Windows下也有類似 Linux 指令可以快速的刪除程序。可以先用 tasklist 找出程序的 pid (process id) ,然後再用 taskkill 刪除程序。
tasklist | find /i "{程序名稱}"
taskkill /f /pid {PID}
或利用程序名稱,直接刪除程序
taskkill /f /im {程序名稱}

例 WinXP 下要刪除 notepad.exe(記事本) 的應用程序,可以在命令提示字元下輸入:
tasklist | find /i "notepad" ( /i : 代表忽略大小寫 )
先找出名為 notepad 程序的 pid (第二欄即是pid),再用 taskkill 刪除
taskkill /f /pid 3316

OR 直接刪除所有名稱為 notepad.exe 的程序
taskkill /f /im notepad.exe



更多用法可參考:
tasklist /?
taskkill /?

用 taskkill 來結束處理程序中的程式

*當一些程式無法停止的時候可使用這個方法

用 taskkill 來結束處理程序中的程式

taskkill 描述:
這個命令列工具可以用來結束一個或數個處理程序。
可以依處理程序識別碼或影像名稱來清除處理程序。

TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]


以結束flashget.exe 為說明

“開始→執行”命令,在“執行”對話方塊中輸入“cmd”命令,進入命令提示字元視窗(DOS模式視窗),在命令提示字元下輸入Taskkill /im flashget.exe" /f 就可以把flashget.exe 這個程序強制停止。