PDA

View Full Version : سوال: جایگزین متن با متنی دیگر در CMD



Faramarzhidden
جمعه 27 شهریور 1394, 21:31 عصر
با عرض سلام و خسته نباشید خدمت اساتید محترم
بنده قصد داشتم یک فایلی در فضای CMD ایجاد کنم که مثلا با وارد کردن دستور:

1 test.apk
به جای عدد 1 دستور زیر اجرا شود :

rm test.apk

به طور کلی، کاربر عدد 1 را وارد و سپس نام فایل مورد نظر را جلوی 1 بنویسد ولی دستور rm به جای عدد 1 اجرا گردد.

اگر کسی اطلاعی دارد ممنون میشم اعلام کند.
با سپاس

pbm_soy
شنبه 28 شهریور 1394, 01:34 صبح
یک فایل با نام 1.bat ایجاد کنید و داخلش دستور زیرا بنویسید

Rm %1

نام فایل اجرایی شما یک است یک را بزنید دستورات داخلش اجرا میشوند ولی خطا خواهد داد چون دستور rm به پارامتر نیاز دارد که پارامتر آن هم اولین نام ومسیر فایلی که جلوی یک مینویسید خواهد بود

Faramarzhidden
شنبه 28 شهریور 1394, 20:11 عصر
بله پاسخ شما صحیح است
اما فکر کنم منظورم رو واضح نرسوندم
من میخوام عدد 1 رو با یک نامی بعدش نوشته بشه
مثلا :

1 test.apk
که با وارد کردن دستور بالا در cmd توسط یک فرد، دستور زیر اجرا شود :

rm test.apk

توجه کنید که این فایل test.apk متغییر است، ممکن است نامش تغییر کند.

با سپاس از پاسختون

pbm_soy
شنبه 28 شهریور 1394, 20:46 عصر
خوب این پست شما پست اول فرقی نکرد و توضیح بیشتری ندادید!
منظور شما این بود ؟


1 test.apk
1 xxxx.apk
1 ali.txt
1 reza.exe





و میخواهید درصورت زده شدن دستورات بالا آن فایلهای جلوی عدد یک حذف شوند
دراینصورت روالی که گفتم درست است و مشکل شما را کامل حل خواهد کرد

pbm_soy
شنبه 28 شهریور 1394, 21:01 عصر
اگر میخواهید در زمان حذف سوال تایید نپرسد از سوییچ. -rf قبل از علامت درصد استفاده کنید
اگر نمیخواهید پسوند فایل را بنویسید میتوانید از روش زیر استفاده کنید


Rm -rf %1.apk

نام فایل را بدون پسوند در جلوی یک بنویسید و برنامه هم فقط فایل را apk فرض میکند وجور دیگه خطا خواهد داد البته میتوان کاری کرد که برای پسوندهای مختلف هم کار کند و شرایط کار را توسعه داد
البته میتوانید از دستور کلاسیک داس و ویندوز del /f %1 استفاده کنید

Faramarzhidden
شنبه 28 شهریور 1394, 21:41 عصر
با سلام مجدد
خیلی ممنون از پاسختون، بسیار کارامد و مفید بود.
فقط یک سوال دیگه ازتون داشتم،
نمیشه کاری کرد که کل این cmd داخل یک فایل exe درست بشه ؟ ( مثلا با vb )
برخی برنامه ها هستند که مثلا عدد 1 رو وارد کنی و Enter بزنی، یک دستوری رو اجرا میکنه که قابل نمایش نیست و اپن سورس هم نمیباشد

به زبون روان تر، این دستورات رو طوری اکی کنیم که اپن سورس و قابل نمایش نباشد ؟؟ ( کل فایل ها در قالب یک فایل exe باشد )

pbm_soy
شنبه 28 شهریور 1394, 23:58 عصر
یعنی میخواهید فایل bat را تبدیل به exe کنید درسته؟
برای اینکار یک زمانی تحت داس برنامه ای بود به اسم bat2com که تبدیل به فایلهای اجرایی com میکرد ولی در ویندوز دیگه ساختار فایلهای اجرای com وجود ندارد یا ساپورت نمیشود
به هر حال شما در گوگل سرچ گنید bat2exe حتما یک برنامه تبدیل کننده bat به exe پیدا خواهید کرد
البته همین را خودتان هم میتوانید بنویسید!

و یا اینکه در کل بجای استفاده از bat از خود vb6 استفاده کنید و در برنامه هم فایلی که کاربر نامش را در خط فرمان مشخص کرده را توسط دستورات vb حذف کنید
برای حذف فایل در vb میتوانید از شی file system object استفاده کنید یا همان fso که دو یا سه خط بیشتر نمیشه
ویا از دستور قدیمی kill که جلوی آن رشته ای که نام مسیر فایل را مشخص کرده باشید را باید قید کنید
فقط میماند برنامه را بصورت کنسول یا همان تحت داس بنویسید که برای اینکار در vb همه فرمها و دیالوگهای موجود در پروژه را حذف کنید و فقط یک ماژول در آن ایجاد کنید در این ماژول هم فقط یک sub ایجاد کنید با نام main و داخل آن برنامه را بنمویسید
حالا باید پارامتر یا نام فایلی که کاربر در خط فرمان در جلوی برنامه گفته را بگیرید برای اینکار در vb6 متغییر سراسری به نام command از نوع رشته وجود دارد که در آن هرچیزی که کاربر در خط فرمان داس جلوی نام برنامه نوشته شده موجود میباشد
برای امتحان فقط مقدار command را print کنید ببینید چی میشه!

roo.row
دوشنبه 30 شهریور 1394, 22:03 عصر
با سلام
برنامه ی تبدیل فایل bat به exe پیوست شد
با تشکر

از اینجا (http://s6.picofile.com/file/8213333542/bat2exe.exe.html)دانلود کنید

Faramarzhidden
جمعه 03 مهر 1394, 17:50 عصر
سلام مجدد به تمامی اساتید

یک مشکلی که الان دارم، این کد رو من میخواستم تو حالت ADB اندروید استفاده کنم
اما متاسفانه پاسخ دوستمون pbm_soy (http://barnamenevis.org/member.php?20034-pbm_soy) که گفتن یک فایل bat بسازم و دستور Rm %1 درونش قرار بدم، توی ADB کار نمیکنه
خطای زیر را میدهد :

/system/bin/sh: 1: not found

من گفته بودم که بجای عدد 1 دستور rm اجرا بشه
که توی adb میگه دستور 1 پیدا نشد
انگار قابل جایگزین دستور را ندارد
با تشکر از دوستان :قلب:

Faramarzhidden
یک شنبه 05 مهر 1394, 20:11 عصر
همچنان منتظر پاسخ های گرانبهای اساتید هستیم...

pbm_soy
دوشنبه 06 مهر 1394, 00:26 صبح
دوست عزیز بهتر بود اول کار میگفتید که میخواهید در شل آندروید اجرا بگیرید!
وبهتر بود سوال را در بخش آندروید مطرح میکردید! از مدیران سایت بخواهید این تاپیک را انتقال دهند!
به این نکته باید توجه کنید که فایلهای bat فایلهای اجرایی محیط داس و ویندوز هستند نه لینوکس! اسکریپتهای محیطهای لینوکسی را معمولا shell script میگویند و پسوند sh دارند و پس از نوشتن هم حتما باید پرمیسشن اجرایی داشته باشند تا اجرا شوند!

جالبه شما در این پست نوشتید: من گفته بودم وقتی ۱ میزنم فلان دستور اجرا شود! یعنی اجرا نمیکرد؟! حتما قبلا در ویندپز و داس تست کرده بودید! وجواب گرفته بودید! ولی الان در adb نشده و دوباره میخواهید! در هرصورت گویا شما فایل bat را در آندروید push کردید یعنی کپی کردید تو دستگاه اندرویدی و اونجا خواستید با دستور sh اجرا کنید!
این دستور اسکریپتهای لینوکسی را اجرا میکند! برای حل این مشکل میتوانید در ابتدای همون خطی که دستور rm را نوشتید عبارت adb shell را اضافه کنید یعنی محتوای 1.bat بصورت زیر میشود


Adb shell rm -rf %1




در ضمن دستورات لینوکسی حساس به حروف کوچک و بزرگ هستند یعنی دستورات جلوی adb shell! میتوانید دستورات جلوی آنرا کلا بین دو علامت کوتیشن" قرار دهید
وهمینطور حتما قبل از اجرای بچ فایل باید adb اوکی شده باشد!

pbm_soy
دوشنبه 06 مهر 1394, 00:55 صبح
در ضمن یادم رفت بگم اگر فایلی که میخواهید حذف شود برای حذف شدن نیاز به قدرت root دارد حتما باید بین adb shell و دستور rm عبارت su -c را اضافه کنید!
همینطور حتما باید این فایل 1.bat را در فولدری که adb.exe قرار دارد بسازید و یا اینکه در داس ویندوز به فولدر adb مسیر اجرای داده باشید توسط path!

pbm_soy
دوشنبه 06 مهر 1394, 01:06 صبح
بد نیست روش شل اسکریپت لینوکسی را هم اینجا بگم!
یک فایل متنی درست کنید به نام 1.sh بهتر است با notepad++ درست کنید و در آن دو خط زیر را تایپ کنید


#!/bin/bash
rm -rf $1


حالا این فایل را دستگاه اندرویدی push کنید مثلا در فولدر /data/ با دستور زیر


adb push 1.sh /data/

با اینکار فایل اسکریپت را کپی کردید در دستگاه اندرویدی فولدر data
شما هرجایی که صلاح میدانید کپی کنید سپس این فایل اسکریپت را اجرایی کنید یعنی خصیصه ۷۵۵ را به آن بدهید و سپس اجرا کنید اینکارها را میتوانید از بیرون دستگاه انجام دهید و یا اینکه وارد شل شوید و انجام دهید
دستورات زیر در حالتی که وارد شل شدید است



cd /data
chmodn755 1.sh
Sh 1 test.apk


میتوانید بجای دستور آخر بصورتهای زیر هم بنویسید


sh 1.sh test.apk
sh 1.sh /myfolder/test.apk
./1.sh test.apk
1.sh test.apk