กลุ่มผู้ดูแลระบบแห่งประเทศไทย กลุ่มผู้ดูแลระบบแห่งประเทศไทย
9 กุมภาพันธ์ 2010, 07:21:28 *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
Google
  หน้าแรก   เวบบอร์ด   ค้นหา ช่วยเหลือ เจ้าหน้าที่ เข้าสู่ระบบ สมัครสมาชิก  


+ กลุ่มผู้ดูแลระบบแห่งประเทศไทย » Developer Zone » Script Center » หัวข้อ:
|-+ อยาก Batch file ที่ใช้ในการ copy ตามวันที่ อัตโนมัติ อะครับ


หน้า: [1]   ลงล่าง
  ตอบ  |  เพิ่มบุ้คมาร์ค  |  พิมพ์  
ผู้เขียน หัวข้อ: อยาก Batch file ที่ใช้ในการ copy ตามวันที่ อัตโนมัติ อะครับ  (อ่าน 2676 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
YOOKUNG
*

Savant Grade 1

สมาชิกลำดับที่ 44337

ออฟไลน์ ออฟไลน์

จิตพิสัย: 0

กระทู้: 264
Posting Frequency






 ระดับถัดไป:
 70% ( 14 / 20 )

« เมื่อ: 7 เมษายน 2009, 11:56:01 »
ตอบโดยอ้างถึงข้อความอ้างถึง

อยาก Batch file ที่ใช้ในการ copy ตามวันที่อะครับ มีใครพอมีบ้างครับ  Afro Afro

บันทึกการเข้า

NR IT Engineering >>> www.nairong.com
บทเรียนฟรี สำหรับมัธยม! >>> www.thetutorking.com
inoomudon
*****

Savant Grade 5

สมาชิกลำดับที่ 42514

ออฟไลน์ ออฟไลน์

จิตพิสัย: 1

กระทู้: 336
Posting Frequency






 ระดับถัดไป:
 30% ( 6 / 20 )

« ตอบ #1 เมื่อ: 7 เมษายน 2009, 12:00:26 »
ตอบโดยอ้างถึงข้อความอ้างถึง

อยาก Batch file ที่ใช้ในการ copy ตามวันที่อะครับ มีใครพอมีบ้างครับ  Afro Afro

ใช้ scheduled tasks ช่วยสิครับ สั่งให้รันตามวันเวลาได้

บันทึกการเข้า

เมื่อครั้งกาลก่อน ยังเคยอ่อนด้อย
ณ เพลานี้ ก็ยังอ่อนด้อยอยู่ดี -  -*
หนุ่มเมืองน่าน
*****

Thaiadmin Global Staff
Thaiadmin Professional
Thaiadmin Writer

สมาชิกลำดับที่ 1218

เพศ: ชาย ออนไลน์ ออนไลน์

จิตพิสัย: 17

กระทู้: 863
Posting Frequency


อยู่ด้วยศรัทธา มาด้วยใจพร้อม






 ระดับถัดไป:
 90% ( 63 / 70 )

« ตอบ #2 เมื่อ: 7 เมษายน 2009, 12:10:47 »
ตอบโดยอ้างถึงข้อความอ้างถึง

ใช้ %date% ช่วยใน Batch File ครับ

เช่น Copy C:\FileA.xls D:\Backup\FileA_%date:/=-%.xls

คำอธิบาย %date:/=-%

ปกติถ้าเราใช้ %date% รูปแบบวันที่มันจะออกมาเป็น DDD DD/MM/YYYY
แต่ / ใช้ตั้งชื่อไฟล์ไม่ได้
เลยสั่งให้ / เป็น - แทน ก็จะได้เป็น DDD DD-MM-YYYY

แล้วค่อยเอาไปใส่ใน Schedule Task อีกที หรือจะใช้ At Command ช่วยก็ได้ เช่น
AT 12:00 "Copy C:\FileA.xls D:\Backup\FileA_%date:/=-%.xls"


 Wink

บันทึกการเข้า

รับติดตั้งระบบ : MS Terminal Server, MS Exchange 2007/2010, VoIP, Network, HotSpot, CCTV, Power Management ฯลฯ


+ + + สอบถามปัญหาต่าง ๆ กรุณาตั้งกระทู้ถามที่กระดานสนทนานะครับ ไม่รับประกันหรือไม่รับตอบปัญหาทางข้อความส่วนตัว อีเมล์ และโปรแกรมแชท ถามคนเดียว รู้คนเดียว ตอบไม่ได้ เดี๋ยวจะเคืองกันอีก (นิสัย นิสัย พระมหาสมปองว่าไว้) อิ อิ + + +

-*- หมูอ้วนสุดหล่อ -*-
-<SAKURA>-^-
*****

Thaiadmin Meeting

สมาชิกลำดับที่ 2231

เพศ: หญิง ออฟไลน์ ออฟไลน์

จิตพิสัย: 7

กระทู้: 227
Posting Frequency


TH@min Membership






 ระดับถัดไป:
 70% ( 7 / 10 )

« ตอบ #3 เมื่อ: 7 เมษายน 2009, 13:10:24 »
ตอบโดยอ้างถึงข้อความอ้างถึง

หมายถึงว่าให้ copy file ที่ถูกสร้างในแต่ละวันหรือเปล่า ลองใช้ robocopy ซิ มันอยู่ใน Resource Tool kit ของ Microsoft มันสร้างเงื่อนไขการ copy ได้



Confirmed by: TechToy

บันทึกการเข้า

<b>กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย</b>
nateekakaw
****

Genius Expert

สมาชิกลำดับที่ 25689

ออฟไลน์ ออฟไลน์

จิตพิสัย: 0

กระทู้: 124
Posting Frequency






 ระดับถัดไป:
 40% ( 4 / 10 )

« ตอบ #4 เมื่อ: 4 พฤศจิกายน 2009, 20:55:40 »
ตอบโดยอ้างถึงข้อความอ้างถึง

ใช้ %date% ช่วยใน Batch File ครับ

เช่น Copy C:\FileA.xls D:\Backup\FileA_%date:/=-%.xls

คำอธิบาย %date:/=-%

ปกติถ้าเราใช้ %date% รูปแบบวันที่มันจะออกมาเป็น DDD DD/MM/YYYY
แต่ / ใช้ตั้งชื่อไฟล์ไม่ได้
เลยสั่งให้ / เป็น - แทน ก็จะได้เป็น DDD DD-MM-YYYY

แล้วค่อยเอาไปใส่ใน Schedule Task อีกที หรือจะใช้ At Command ช่วยก็ได้ เช่น
AT 12:00 "Copy C:\FileA.xls D:\Backup\FileA_%date:/=-%.xls"


 Wink
  ขอบคุณมากครับ ท่านหนุ่มเมืองน่าน

เป็นสิ่งที่ผมกำลังหา script แบบนี้พอดีเลย แต่ว่าพอลอง test run แล้วมัน error อ่า





* error.JPG (35.81 KB, 668x336 - ดู 39 ครั้ง.)
บันทึกการเข้า

กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย
Keigo
*****

Thaiadmin VIP

สมาชิกลำดับที่ 5266

เพศ: ชาย ออฟไลน์ ออฟไลน์

จิตพิสัย: 11

กระทู้: 479
Posting Frequency


TH@min Membership






 ระดับถัดไป:
 40.83% ( 49 / 120 )

« ตอบ #5 เมื่อ: 4 พฤศจิกายน 2009, 21:36:03 »
ตอบโดยอ้างถึงข้อความอ้างถึง

ลองแบบนี้สิ ใช้ double quote ช่วย เพราะ return string ที่ได้กลับมามันมี space ด้วย

Copy C:\FileA.xls D:\Backup\FileA_"%date:/=-%".xls

หรือ

Copy C:\FileA.xls D:\Backup\"FileA %date:/=-%".xls

บันทึกการเข้า

<b>When we wake up in the morning, we have two simple choices. Go back to sleep and dream, or wake up and chase those dreams.</b>
nateekakaw
****

Genius Expert

สมาชิกลำดับที่ 25689

ออฟไลน์ ออฟไลน์

จิตพิสัย: 0

กระทู้: 124
Posting Frequency






 ระดับถัดไป:
 40% ( 4 / 10 )

« ตอบ #6 เมื่อ: 6 พฤศจิกายน 2009, 18:05:10 »
ตอบโดยอ้างถึงข้อความอ้างถึง

ลองแบบนี้สิ ใช้ double quote ช่วย เพราะ return string ที่ได้กลับมามันมี space ด้วย

Copy C:\FileA.xls D:\Backup\FileA_"%date:/=-%".xls

หรือ

Copy C:\FileA.xls D:\Backup\"FileA %date:/=-%".xls
ขอบคุณมากครับผม ใช้ได้เลยแบบบนี้อ่า
 Afro Afro Afro Afro Afro Afro

แต่ถ้าแบบว่า Data ที่ backup มาเป็นของวันจริงแต่เปลี่ยนชื่อเป็น ลบไปหนึ่งวันพอจะทำได้ไหมอ่าครับ  เช่น

วันนี้เป็นวันที่ 6 november ถ้าตาม script จะได้ "   FileA 11-06-2009  "
 
 แต่ถ้าให้ ชื่อ ไฟล์เป็น  " FileA 11-05-2009 "ได้ไหมอ่าครับ  แต่เป็น data จริงเป็น ของวันที่ 6 อ่า


ขอบคุณมากครับท่าน Keigo

บันทึกการเข้า

กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย
Keigo
*****

Thaiadmin VIP

สมาชิกลำดับที่ 5266

เพศ: ชาย ออฟไลน์ ออฟไลน์

จิตพิสัย: 11

กระทู้: 479
Posting Frequency


TH@min Membership






 ระดับถัดไป:
 40.83% ( 49 / 120 )

« ตอบ #7 เมื่อ: 6 พฤศจิกายน 2009, 21:19:06 »
ตอบโดยอ้างถึงข้อความอ้างถึง

พอเป็นพิธี เอาไปเขียนเพิ่มเงื่อนไขเอาเพื่อความถูกต้องนะเพราะวิธีนี้วันที่ 1 มันจะแสดง เป็น 0 ไม่ใช่ 30 หรือ 31 (ยังไม่รวม ก.พ. เจ้าปัญหานะ) เช่น ถ้า yesterday ได้เท่ากับ 0 ของเดือน 04, 06, 09, 11 ให้แปลงเป็น 30; 01, 03, 05, 07, 08, 10, 12 ให้แปลงเป็น 31 อีกทั้งต้องลดค่าของเดือนลงด้วยหนึ่ง ฯลฯ

@ECHO OFF

for /f "tokens=1,2,3,4 delims=/ " %%a in ("%date%") do set wday=%%a&set month=%%b&set day=%%c&set year=%%d

echo.Weekday: %wday%
echo.Month  : %month%
echo.Day    : %day%
echo.Year   : %year%

set /a yesterday=%day% - 1
copy C:\FileA.xls D:\Backup\"FileA 0%yesterday%-%month%-%year%".xls

บันทึกการเข้า

<b>When we wake up in the morning, we have two simple choices. Go back to sleep and dream, or wake up and chase those dreams.</b>
nateekakaw
****

Genius Expert

สมาชิกลำดับที่ 25689

ออฟไลน์ ออฟไลน์

จิตพิสัย: 0

กระทู้: 124
Posting Frequency






 ระดับถัดไป:
 40% ( 4 / 10 )

« ตอบ #8 เมื่อ: 6 พฤศจิกายน 2009, 22:54:55 »
ตอบโดยอ้างถึงข้อความอ้างถึง

พอเป็นพิธี เอาไปเขียนเพิ่มเงื่อนไขเอาเพื่อความถูกต้องนะเพราะวิธีนี้วันที่ 1 มันจะแสดง เป็น 0 ไม่ใช่ 30 หรือ 31 (ยังไม่รวม ก.พ. เจ้าปัญหานะ) เช่น ถ้า yesterday ได้เท่ากับ 0 ของเดือน 04, 06, 09, 11 ให้แปลงเป็น 30; 01, 03, 05, 07, 08, 10, 12 ให้แปลงเป็น 31 อีกทั้งต้องลดค่าของเดือนลงด้วยหนึ่ง ฯลฯ

@ECHO OFF

for /f "tokens=1,2,3,4 delims=/ " %%a in ("%date%") do set wday=%%a&set month=%%b&set day=%%c&set year=%%d

echo.Weekday: %wday%
echo.Month  : %month%
echo.Day    : %day%
echo.Year   : %year%

set /a yesterday=%day% - 1
copy C:\FileA.xls D:\Backup\"FileA 0%yesterday%-%month%-%year%".xls
ขอบคุณมากๆครบ ท่าน Keigo

เก่งมากๆเลย ว่าแต่รบกวน สอบถามเกี่ยวกับ script ว่า
tokens=1,2,3,4 delims=  หมายความว่าอยางไรอ่าครับผม




ขอบคุณมากๆอีกครั้งครับ

บันทึกการเข้า

กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย
~ RoNiN ~
*****

Thaiadmin Global Staff

สมาชิกลำดับที่ 56

เพศ: ชาย ออนไลน์ ออนไลน์

จิตพิสัย: 6

กระทู้: 470
Posting Frequency


ทำดีแต่อย่าเด่นจะเป็นภัย






 ระดับถัดไป:
 33.33% ( 40 / 120 )

« ตอบ #9 เมื่อ: 6 พฤศจิกายน 2009, 23:17:47 »
ตอบโดยอ้างถึงข้อความอ้างถึง

FOR /? จะเห็นคำตอบครับ Grin

☆.•:*` RoniN `*:•.☆
บันทึกการเข้า

Find Some Things
โมโม
บุคคลทั่วไป
« ตอบ #10 เมื่อ: 26 พฤศจิกายน 2009, 15:01:12 »
ตอบโดยอ้างถึงข้อความอ้างถึง

อยากขอสคริป ที่สั่งให้backup file ทุกวันเวลาเที่ยงคืน และรับวันที่อัตโนมัติ แล้วพอขึ้นเดือนใหม่ให้ลบข้อมูลเดือนเก่าออกด้วย เช่น สมมุติวันนี้วันที่ 26-11-52 พอวันที่ 26-12-52 ให้backup แล้วลบข้อมูลของวันที่ 26-11-52 ด้วยหน่ะค่ะ รบกวนหน่อยนะคะ หรือแอดเมลล์มาคุยก็ได้ค่ะ ขอบพระคุณล่วงหน้า

บันทึกการเข้า
โมโม
บุคคลทั่วไป
« ตอบ #11 เมื่อ: 26 พฤศจิกายน 2009, 15:03:20 »
ตอบโดยอ้างถึงข้อความอ้างถึง

อิเมลล์นี้นะคะ momo1610naka@hotmail.com

บันทึกการเข้า
กลุ่มผู้ดูแลระบบแห่งประเทศไทย
    ตอบโดยอ้างถึงข้อความอ้างถึง


โปรดอ่านกฎกติกาก่อนแสดงความคิดเห็น


1. โปรดงดเว้น การใช้คำหยาบคาย ส่อเสียด ดูหมิ่น กล่าวหาให้ร้าย สร้างความแตกแยก หรือกระทบถึงสถาบันอันเป็นที่เคารพ
2. ข้อความหรือรูปภาพที่ปรากฏในกระทู้ที่ท่านเห็นอยู่นี้ เกิดจากการตั้งกระทู้และถูกส่งขึ้นเวบบอร์ดโดยอัตโนมัติจากบุคคลทั่วไปและสมาชิก
ซึ่งทีมงานกลุ่มผู้ดูแลระบบแห่งประเทศไทย มิได้มีส่วนร่วมรู้เห็น หรือพิสูจน์ข้อเท็จจริงใดๆ ทั้งสิ้น
และไม่สามารถนำไปอ้างอิงทางกฎหมายได้
3. หากท่านพบเห็นข้อความ หรือรูปภาพในกระทู้ที่ไม่เหมาะสม กรุณาแจ้งทีมงานทราบ เพื่อดำเนินการต่อไป
4. ทีมงานกลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอสงวนสิทธิ์ในการลบความคิดเห็น โดยไม่ต้องชี้แจงเหตุผลใดๆ ต่อเจ้าของความคิดเห็นนั้น

 บันทึกการเข้า
หน้า: [1]   ขึ้นบน
  ตอบ  |  เพิ่มบุ้คมาร์ค  |  พิมพ์  
+ กลุ่มผู้ดูแลระบบแห่งประเทศไทย » Developer Zone » Script Center » หัวข้อ:
|-+ อยาก Batch file ที่ใช้ในการ copy ตามวันที่ อัตโนมัติ อะครับ


 
กระโดดไป:  

+ ตอบด่วน


Powered by MySQL Powered by PHP Powered by SMF 1.1.11 Thaiadmin Edition | Sitemap| SMF © 2006-2009, Simple Machines LLC
Thai Language by ThaiSMF. Modifications by Thaiadmin Group. Co-Location by SiamBOX
DELL 860 Server Support by ETNS. Memory for Server by Memory Today.
Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.065 วินาที กับ 46 คำสั่ง

Google visited last this page เมื่อวานนี้ เวลา 23:28:37