سؤال

لذلك ، لدي مجموعة من الملفات بدون امتداد. أريد أن أكتب برنامج نصي دفعة Windows سوف:

  1. ابحث عن الملفات بدون امتداد (في مجلد محدد)
  2. أضف .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"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top