دفعة واحدة: اقرأ فقط اسم الملف من متغير مع المسار واسم
-
19-08-2019 - |
سؤال
وأنا أبحث حاليا عن وسيلة لاتخاذ متغير في دفعة وتحليل فقط من اسم الملف.
وعلى سبيل المثال، أمرر ملفي دفعة معلمة -s من تطبيق آخر وهو يحدد لاحقا إلى بلدي متغير المصدر. المتغير ملف المصدر يحتوي عادة شيء من هذا القبيل: C: الملفات \ برنامج \ اسم التطبيق \ Instance.1 \ البيانات \ filetomove.ext
وأفترض أن يقرأ من نهاية متغير حتى الأول "\" وتعيين النتيجة إلى اسم متغير جديد ولكن لم أكن قادرا على استخدام "ل/ و" commmand بنجاح.
وأي مساعدة سيكون محل تقدير كبير!
تحديث: فقط XP أو Windows القياسية 2000/2003 متاح ... (لا يمكن أن نفترض مجموعات الموارد مثبتة)
المحلول
إذا دخولها في كحجة للنص، أي٪ 1 و٪ 2، وما إلى ذلك، يمكنك استخراج فقط اسم الملف والإرشاد إلى متغير مثل هذا:
set FILENAME=%~nxN
وحيث N هو مؤشر ذي الحجة. على سبيل المثال، فإن هذا السيناريو صدى مجرد اسم الملف من ذي الحجة الأولى:
@echo off
set FILENAME=%~nx1
echo %FILENAME%
نصائح أخرى
وتحسين قليلا نسخة:
set FILENAME="%~nx1"
ووالأقواس إضافية سيضمن أحرف خاصة، مثل '&'، لن تتدخل أثناء تنفيذ دفعة واحدة.