العثور على الملفات وإعادة تسميتها بدون امتداد؟
-
06-07-2019 - |
سؤال
لذلك ، لدي مجموعة من الملفات بدون امتداد. أريد أن أكتب برنامج نصي دفعة Windows سوف:
- ابحث عن الملفات بدون امتداد (في مجلد محدد)
- أضف .bla إلى نهاية اسم الملف
أنا مثل هذا البرنامج النصي دفعة Windows لا أعرف حتى من أين أبدأ. اقتراحات؟
المحلول
بالنسبة لملفات Windows Batch ، سيؤدي ذلك إلى إعادة تسمية الملفات فقط بدون امتداد إلى ملحق .Bla:
rename *. *.bla
لاحظ أن الوسيطة الأولى هي نجمة ونقطة: *.
الحجة الثانية هي: *.bla
يمثل مجموعة START DOT (*.) الملفات بدون امتدادات في هذا السياق.
قبل:
06/21/2009 11:57 PM 6 test
06/21/2009 11:57 PM 7 test.exe
06/21/2009 11:57 PM 7 test2
بعد، بعدما:
06/21/2009 11:57 PM 6 test.bla
06/21/2009 11:57 PM 7 test.exe
06/21/2009 11:57 PM 7 test2.bla
ملاحظة إضافية: ستعيد سطر الأوامر المعاكس تسمية جميع ملفات .BLA إلى أي ملفات تمديد.
تعديل:
لإعادة تسمية الملفات بشكل متكرر دون أي امتداد عبر الدلائل الفرعية (لا يدعم المساحات في المسارات):
@echo off
FOR /F %%i in ('dir /b/s/A-d') DO (
if "%%~xi" == "" rename "%%~fi" "%%~ni.bla"
)
EDIT2:
لإعادة تسمية الملفات بشكل متكرر مع عدم وجود امتداد عبر الدلائل الفرعية (يدعم المساحات في المسار):
@echo off
for /f "tokens=* delims= " %%i in ('dir /b/s/A-d') DO (
if "%%~xi" == "" rename "%%~fi" "%%~ni.bla"
)
نصائح أخرى
إليك أمر آخر ممكن لإعادة تسمية الملفات بدون امتدادات متكررة (على افتراض ذلك مسارات الملف لا تحتوي على مسافات):
for /f %i in ('dir *. /b /s /a-d') do rename "%~fi" "%~ni.bla"
نسخة دفعة (مع مضاعفة %
):
@echo off
for /f %%i in ('dir *. /b /s /a-d') do (
rename "%%~fi" "%%~ni.bla"
)
إذا كانت أسماء الملف أو المجلد تحتوي على مسافات, ، استخدم هذا الأمر بدلاً من ذلك:
for /f "tokens=* delims= " %i in ('dir *. /b /s /a-d') do rename "%~fi" "%~ni.bla"
نسخة الدُفعات:
@echo off
for /f "tokens=* delims= " %%i in ('dir *. /b /s /a-d') do (
rename "%%~fi" "%%~ni.bla"
)
يحرر: إليك حتى أقصر خط واحد يدعم المساحات في المسارات:
for /r %i in (*.) do ren "%~fi" "%~ni.bla"
نسخة الدُفعات:
@for /r %%i in (*.) do ren "%%~fi" "%%~ni.bla"
للقيام بذلك في الدلائل الفرعية ، استخدم هذا:
for /f %a in ('dir /b /ad /s') do rename %a\*. *.bla
إذا كنت تستخدم هذا في ملف دفعة ، فأنت بحاجة إلى مضاعفة "٪"
for /f %%a in ('dir /b /ad /s') do rename %%a\*. *.bla
تعديل:
وإذا كان لديك مسافات في أسماء الدليل الخاصة بك ، فيمكنك تجربة هذا (إصدار الدُفعة):
for /f "tokens=* delims= " %%a in ('dir /b /ad /s') do rename "%%a\*." "*.bla"