batch file ทำอะไรได้มากกว่าที่คิด by

17
Mar
0

วันนี้ได้รับโจทย์มาว่า ให้เขียน Script อะไรก็ได้ copy ไฟล์ ชื่อ skill_1 และ skill_2 จากใน(หลายๆๆๆๆๆๆๆ) folder แล้ว rename ให้ชื่อ file เหมือนกับชื่อ folder ตามด้วย _1 และ _2 ตามลำดับ แล้วเอาออกไปไว้รวมกัน ก็เลยเขียนเป็น batch file ซะเลย

ตอนแรกที่เขียนๆไป code ก็หน้าตาประมาณนี้


@echo off
for /r %%a in ("*skill_1.png") do (
set str=%%~pa
copy %%a %str:~0,-1%_1.png
)
for /r %%a in ("*skill_2.png") do (
set str=%%~pa
copy %%a %str:~0,-1%_2.png
)

แต่แล้วปัญหาก็เกิดขึ้น คือคำสั่ง set เนี่ยมันยังไงไม่รุ เหมือนกันไป set ทีเดียวตอนจบการทำงานทั้งหมด พอ run code นี้ ก็เลยได้ออกมา 2 ไฟล์ เพราะ str ดันออกมามีค่าเดียวซะงั้น – -”

ก็เลยแก้ปัญหาด้วยการ สร้าง batch file อีกอันตั้งชื่อว่า copy_rename2.bat แล้วแยก code ออกเป็น 2 ไฟล์ดังนี้

1.

@echo off
for /r %%a in ("*skill_1.png") do (
echo %%~pa
call "copy_rename2" %%~pa
)

2.

@echo off
set str=%1
echo %str:~0,-1%
copy %1skill_1.png %str:~0,-1%_1.png
copy %1skill_2.png %str:~0,-1%_2.png

แล้วเอาวางไว้ข้างๆกัน พอ run batch file อันที่ 1 มันก็ไปเรียก อันที่2 โดยทำให้ตัวแปร str มันแยกกันคนละ session คร้าาฟฟฟฟ

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน