ছোট হাতের জন্য ফাইলগুলির নাম বদলে দেওয়ার কোনও উপায় আছে কি?


63

ফোল্ডার এবং সাবফোল্ডারগুলিতে সমস্ত ফাইলের ছোট হাতের অক্ষরে নাম পরিবর্তন করার জন্য আমার একটি উপায় দরকার।

আমি জানাতে চাই যে এটি করার কোনও উপায় যদি কেবল উইন্ডো ব্যবহার করে (এক্সপি বা 7)


উইন্ডোজ ছোট এবং উপরের ক্যাপগুলির মধ্যে ইউনিক্সের মতো পার্থক্য করে না। হতে পারে, যদি আপনি বলেন, কেন আপনার এটি প্রয়োজন, এটি সমস্যা সমাধানে সহায়তা করবে।
রুক

1
@Idigas। দুঃখিত, তবে এনটিএফএসের পর থেকে ফাইলের নামগুলি সংবেদনশীল। দেখুন support.microsoft.com/kb/100625
DaveParillo

শুধু মহান. একটি খারাপ ধারণা নিন এবং এটি আরও ছড়িয়ে দিন। কেউ যখন কোনও ফাইল এবং চর্বিযুক্ত আঙুলের ভুল পাঠায় তখন কী সমর্থনজনক স্বপ্ন তা বোঝায় যে তারা "উত্তরগুলি.ড্যাট" প্রেরণ করেছে এবং আগত প্রক্রিয়াটি "উত্তর.ড্যাট" প্রত্যাশা করে। এই দুটি নামকে 'আলাদা' বলে বিবেচনা করার উপযুক্ত কোনও কারণ নেই।
ডেভিড

2
@ ডেভিড, উদাহরণস্বরূপ জাভাতে কেস-সংবেদনশীল ফাইলের নাম প্রয়োজন। এটি কেস-সংবেদনশীল ফাইল সিস্টেমগুলিতে প্রচুর সমস্যা অর্জন করতে পারে।
আরজান

10
আমি জানি এটি পুরানো, তবে আমি এখানে একটি ভুল ধারণাটি পরিষ্কার করতে চেয়েছিলাম। যদিও এনটিএফএস কেস সংবেদনশীলতা সমর্থন করে, উইন্ডোজ ওএস আলাদা করে না!
জিও

উত্তর:


121

ডিরেক্টরিতে যান এবং নিম্নলিখিত কমান্ডটি চালান:

for /f "Tokens=*" %f in ('dir /l/b/a-d') do (rename "%f" "%f")

কেউ যদি সংশোধন / উন্নতি করতে চান তবে ব্রেক-ডাউনটি এখানে:

  • for /f - প্রতিটি লাইনের জন্য
  • "Tokens=*" - প্রতিটি লাইনে প্রতিটি আইটেম প্রক্রিয়া।
  • %f in (...)- %fপ্রতিটি আইটেমের জন্য আপনার পরিবর্তনশীল নাম।
  • dir - প্রতিটি ডিরেক্টরি এবং ডিরেক্টরি ডিরেক্টরিতে সাব ডিরেক্টরি ডিরেক্টরি।
  • /l- (দিরের জন্য প্যারামিটার) লোয়ারকেস ব্যবহার করে।
  • /b- (দির জন্য প্যারামিটার) খালি ফর্ম্যাট ব্যবহার করে, কেবল ফাইল / ডিরেক্টরি নাম, কোনও আকার, কোনও শিরোনাম নেই।
  • /a-d- (দিরের জন্য প্যারামিটার) ডিরেক্টরিগুলি তালিকাভুক্ত করবেন না(এর অর্থ দাঁড়ায় , দাঁড়ানো এবং দাঁড়ানো )aattribute-notddirectory
  • rename "%f" "%f"- ফাইলটির নিজস্ব নাম দিয়ে পুনরায় নামকরণ করুন, যা dirকমান্ড এবং /lসংমিশ্রণ দ্বারা প্রকৃতপক্ষে নিম্নতর হয় ।

7
রিকার্সিভ ভার্সন: for /f "Tokens=*" %f in ('dir /l/b/a-d/s') do (rename "%f" "%f")( দিরের সাথে যুক্ত / র)
সওয়ানি

3
এটি কেবল উজ্জ্বল
শির গানস

4
পুনরাবৃত্ত সংস্করণটি আমার পক্ষে কাজ করে নি - পুনর্নবীকরণটি কমান্ডটি অবৈধ বিন্যাসে থাকার বিষয়ে অভিযোগ করেছে। দ্বিতীয় ফাইলটিকে পরম পথ হিসাবে তালিকাভুক্ত করার জন্য ফাইল ফাইলগুলি প্রসারিত (% ~ nxf) ব্যবহার করে আমাকে মূল, বড় হাতের ফাইলের নাম দিয়েছে name কেবল ম্যানুয়ালি পুনরাবৃত্তি শেষ হয়েছে।
ডগম্যাটেক্সড

3
এটি খুব সুন্দর উত্তর; বিন্দুতে, কোনও বাহ্যিক প্রোগ্রামের প্রয়োজন নেই, সুন্দর এবং ছোট কমান্ড, কোনও ব্যাচের ফাইল জটিল-নেসের প্রয়োজন নেই।
জেফ উইলবার্ট

2
ছোট হাতের অক্ষরকে বড় হাতের বদলে কী পরিবর্তন করা যায়?
চকি

18

স্পেসটোর্নাডো রেনামার একটি উইন্ডোজ প্রোগ্রাম যা ব্যাচগুলিতে প্রচুর পরিমাণে ফাইলের নাম পরিবর্তন করে। আপনি পাঠ্য সন্ধান এবং প্রতিস্থাপন করতে পারবেন, নির্দিষ্ট সংখ্যক অক্ষর সরিয়ে ফেলতে পারবেন, কেসটিকে নিম্ন, উপরের বা প্রথম অক্ষরের মূলধনীতে পরিবর্তন করতে পারবেন এবং প্রতিটি ফাইলের নামের শুরু বা শেষের দিকে (সংযোজন / প্রিপেন্ড) পাঠ্য যুক্ত করতে পারেন

এখানে চিত্র বর্ণনা লিখুন


1
ডাউন ভোটের কারণ বলবেন?
জো

5
লোকেরা খুব কমই ব্যাখ্যা করে, দুর্ভাগ্যক্রমে: /
Gnoupi

7
আমার ধারণা, ডাউনওয়েটটি কারণ ওপি কোনও সমাধান ছাড়াই চেয়েছিল যা কোনও অতিরিক্ত সফ্টওয়্যার ছাড়াই কাজ করেছিল। এবং আমি অনুমান করি যে ডাউনওয়েটটি ব্যাখ্যা করা হয়নি কারণ কিছু লোক প্রতিশোধ নেওয়ার বিষয়টি বিবেচনা করে।
innaM

জিইউআই কিছুটা মজাদার তবে এটি বেশ কয়েকটি অন্যান্য নাম পরিবর্তকের চেয়ে ভাল কাজ করেছে যা আমি সেখানে দেখেছি।
jcollum

1
এটি এটি করেছিল, যখন আমার লিনাক্স এফটিপি সার্ভার থেকে ফাইলগুলি পরিষ্কার করার জন্য পুনরাবৃত্ত নামকরণের প্রয়োজন ছিল ... তবে এটি সঠিকভাবে কাজ করার আগে এটি অ্যাডমিন হিসাবে চালানো দরকার। পুরানো একটি রক্ষণাবেক্ষণ করা প্রোগ্রামের মতো মনে হয় :)
নেলসন

12

উইন্ডোজ 7 যেহেতু আপনি সেই কাজের জন্য পাওয়ারশেল ব্যবহার করতে পারেন

Get-ChildItem "C:\path\to\folder" -recurse | 
  Where {-Not $_.PSIsContainer} | 
  Rename-Item -NewName {$_.FullName.ToLower()}

- আপনার মূল ফোল্ডারটি চয়ন করুন - রুট ফোল্ডারের ভিতরে থাকা
সমস্ত ফাইল এবং সাবফোল্ডারগুলির নাম পরিবর্তন করা হয়
- ফোল্ডারের নাম বাদ দেওয়া হয় Where {-Not $_.PSIsContainer} |


7

এখানে কেবল স্থানীয় সেমিডি.এক্সই কমান্ড ব্যবহার করে একটি যথাযথ পুনরাবৃত্ত কমান্ড লাইন সমাধান রয়েছে যা আসলে কাজ করে। আমি বিশ্বাস করি এটি সবচেয়ে সহজতম নেটিভ সমাধান:

for /r %D in (.) do @for /f "eol=: delims=" %F in ('dir /l/b/a-d "%D"') do @ren "%D\%F" "%F"

আপনি যদি দেশীয় সেমিডি.এক্স.ই. আদেশগুলি ছাড়িয়ে যেতে ইচ্ছুক হন, তবে আর একটি বিকল্প হ'ল আমার জেআরএন.ব্যাট নিয়মিত এক্সপ্রেশনর নাম পরিবর্তনকরণ ইউটিলিটি যা নামগুলি আপার বা লোয়ার কেসে রূপান্তর করতে বিকল্পগুলি সমর্থন করে। এটি খাঁটি স্ক্রিপ্ট (হাইব্রিড জেএসক্রিপ্ট / ব্যাচ) যা এক্সপি থেকে কোনও উইন্ডোজ মেশিনে নেটিভভাবে চালিত হয় - কোনও তৃতীয় পক্ষের এক্স ফাইল ফাইলের প্রয়োজন নেই। সম্পূর্ণ ডকুমেন্টেশন অন্তর্নির্মিত - এর মাধ্যমে কমান্ড লাইন থেকে অ্যাক্সেস করা হয় jren /?বা jren /??আপনি পেজড আউটপুট চাইলে।

জেআরএন এর সাথে, পুনরাবৃত্তির সমাধানটি এত সহজ:

jren "^" "" /s /l

1
দুর্দান্ত কাজ করে। FYI /a-dস্যুইচটি সরিয়ে দেয় এবং এটি ফোল্ডারের নামগুলিও ছোট করে রাখবে।
কিথ

এটি একটি ব্যাচের ফাইল হিসাবে সংরক্ষণ করার চেষ্টা করেছে এবং এটি সিস্টেম 32 এ পপ করেছে যাতে আমি এটি কোনও সময় একটি কমান্ড দিয়ে চালাতে পারি। এর ফলাফল: " D"') was unexpected at this time.এটি সরাসরি কমান্ড হিসাবে চালানো ভাল কাজ করে, একটি ব্যাচ ফাইল হিসাবে চালিত হলে ঠিক কাজ করে না। এটি কীভাবে ব্যাচের ফাইল হিসাবে কাজ করবেন তা নিশ্চিত নন, তবে ভেবেছিলেন যে আমি বিষয়টিকে সামনে রেখে দেব।
ডন কুলেন

1
@ ডনকুলেন - এটি স্ট্যান্ডার্ড সিনট্যাক্স যা ব্যাচ স্ক্রিপ্টের জন্য ফর ব্যবহার করার সময় ভেরিয়েবল পার্সেন্টের জন্য দ্বিগুণ করতে হবে। সুতরাং %Dঅবশ্যই পরিবর্তন করতে হবে %%Dএবং %Fআপনি %%Fযদি একটি ব্যাচের স্ক্রিপ্টের মধ্যে কমান্ডটি রেখে দেন।
dbenham

সর্বদা প্রতিদিন নতুন কিছু শিখুন। ধন্যবাদ!
ডন কুলেন

6

আমার ব্যক্তিগত প্রিয় ব্যাচের ফাইল-নামকরণের ইউটিলিটি হ'ল সাইলগের ওয়াইল্ডেরেনাম । অন্যান্য অনেক বৈশিষ্ট্যের মধ্যে এটি ফাইলের ক্ষেত্রে পরিবর্তন করতে পারে। ওয়াইল্ডরেনাম সম্পর্কে সর্বোত্তম জিনিস সম্ভবত এটি নিয়মিত-এক্সপ্রেশন সমর্থন করে!


এটি 10 ​​সেকেন্ডে ইনস্টলের পরে সঠিক অ্যাপ্লিকেশন। আমি পুনরাবৃত্তভাবে একটি রিমোট ফোল্ডার কনফিগার করেছি এবং নামকরণ করেছি (সুবিধার জন্য ম্যাপযুক্ত)।
মাত্তিও কন্টা

5

স্বীকৃত উত্তরের "পুনরাবৃত্ত" সংস্করণ (এটি কার্যকর *)

for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"') do (for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g"))


প্রথম লুপ

for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"')

বর্তমানের সমস্ত ডিরেক্টরিগুলির (এটি সহ) এর পরম পাথগুলির একটি তালিকা পেয়েছে :

সি: \ ফু>

  • সি: oo ফু \ TO.txt

  • সি: oo ফু \ বার \ LOWER.txt

  • সি: \ ফু \ বার \ বাজ \ CASE.txt xt


দ্বিতীয় লুপ

for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g")

সব একটি তালিকা পায় ফাইলের নাম (অথবা ফাইল এবং ডিরেক্টরির যদি আপনি খুঁজে নিতে নাম /a-dপ্রতিটি ভিতরে সুইচ) পরম পাথ দ্বারা পাওয়া প্রথম লুপ , এবং ছোট হাতের থেকে এই ফাইলগুলির নাম পরিবর্তন করে।

  • সি: oo ফু \ TO.txt

  • সি: oo ফু \ বার \ LOWER.txt

  • সি: \ ফু \ বার \ বাজ \ CASE.txt xt


* এটিতে দুটি লুপের প্রয়োজন কারণ দ্বিতীয় যুক্তিটি renameঅবশ্যই একটি ফাইলের নাম এবং কোনও পরম পাথ নয় ( /sস্যুইচ দ্বারা প্রাপ্ত হিসাবে )।


cmd /c "echo %cd%& প্রথমটা কেন তোমার for? এটি সম্পূর্ণ অপ্রয়োজনীয়।
ডেভিডপস্টিল

নিখুঁত পাথেরecho %cd% তালিকায় বর্তমান ফোল্ডারটি যুক্ত করার জন্য @ ডেভিডপস্টিল রয়েছেন ; এবং তোলে কমান্ড একত্রিত করতে হবে। আমি উইন্ডোজ ব্যাচ স্ক্রিপ্টিং সম্পর্কিত মোট ন্যূব ; আপনি যদি আরও ভাল উপায় সম্পর্কে জানেন তবে উত্তরটি উন্নত করতে দ্বিধা বোধ করুন! cmd /c&
wc.matteo

একটি নুব জন্য দুর্দান্ত কাজ। আপনার প্রথম নেটিভ সেমিডি.এক্স.ই. কম্যান্ড লাইন সমাধান ছিল যা প্রকৃতপক্ষে কাজ করে, ব্যতীত যদি কোনও স্থান স্থান বা সেমিকোলন দিয়ে শুরু হয় তবে ব্যর্থ হয় accepted স্বীকৃত উত্তরটি একই সমস্যা ভোগ করে। সরল উত্তরের জন্য আমার উত্তর দেখুন যা শীর্ষস্থানীয় স্থান বা সেমিকোলনের সাথেও কাজ করে।
dbenham

এটি কি ক্যাপগুলিতে লোকে রূপান্তর করতে পারে?
রিশভ

3

আপনি একটি "চরিত্র প্রতিস্থাপন" কৌশল ব্যবহার করতে পারেন ...

set Name=%Name:A=a%
set Name=%Name:B=b%
set Name=%Name:C=c%

... এবং আরও, অক্ষর AZ এর জন্য। আপনি সম্ভবত এটি ফর লুপ আকারে প্রয়োগ করতে পারেন।


1

http://www.dostips.com/DtCodeCmdLib.php#Function.toLower একটি সাধারণ ফাংশন দেয় যা আপনাকে ব্যাচ ফাইল থেকে অন্তর্ভুক্ত করতে এবং কল করতে সক্ষম হওয়া উচিত।

সুতরাং ফোল্ডার / ফাইল নামগুলির উপর ব্যাচ ফাইলটি পুনরাবৃত্তি করুন এবং নামের ছোট হাতের সংস্করণ তৈরি করতে এই ফাংশনটি কল করুন।


1

Http://windowsitpro.com/articles/index.cfm?articleid=81612 থেকে :

কেবলমাত্র স্ট্যান্ডার্ড কমান্ড ব্যবহার করে, আমি ফাইলের নামটি ছোট আকারে নামকরণ করতে, বা একটি ফোল্ডারের সমস্ত ফাইলের নামকে নিম্ন কেসিতে পুনরায় নামকরণ করতে, LwrCase.bat এবং LwrCase_Folder.bat স্ক্রিপ্ট করেছি।

ছোট ক্ষেত্রে ফাইলের নাম পরিবর্তন করতে, ব্যবহার করুন:

[call] LwrCase FullyQualifiedFileName

যেখানে ফুললি কুইলিফাইডফিলনাম হ'ল নামকরণের জন্য সম্পূর্ণ যোগ্যতাসম্পন্ন ফাইলের নাম।

ডিরেক্টরিতে সমস্ত ফাইলের নাম পরিবর্তন করতে, ব্যবহার করুন:

[call] LwrCase_Folder FullyQualifiedDirectoryName [/S]

যেখানে FullyQualifiedDirectoryName সম্পূর্ণরূপে যোগ্যতাযুক্ত ফোল্ডার পাথ এবং / এস একটি alচ্ছিক পরামিতি যা সমস্ত উপ-ফোল্ডারে ফাইলের নামও পরিবর্তন করে name

দ্রষ্টব্য: LwrCase.bat DIR কমান্ডের / L স্যুইচটি ব্যবহার করে, যা ছোট মামলার নাম দেয়।

LwrCase.bat রয়েছে:

@echo off
if {%1}=={} @echo Syntax: LwrCase FullyQualifiedFileName&goto :EOF
if not exist %1 @echo LwrCase - %1 NOT found.&goto :EOF
setlocal
for /f "Tokens=*" %%a in ('@echo %~a1') do (
 set file=%%a
)
if /i "%file:~0,1%" EQU "d" @echo LwrCase - %1 is NOT a file.&endlocal&goto :EOF
for /f "Tokens=*" %%f in ('dir %1 /L /b /a /a-d') do (
 Rename %1 "%%f"
)
endlocal

LwrCase_Folder.bat এতে রয়েছে:

@echo off
if {%1}=={} @echo Syntax: LwrCase_Folder FullyQualifiedDirectoryName&goto :EOF
if not exist %1 @echo LwrCase_Folder - %1 NOT found.&goto :EOF
setlocal
for /f "Tokens=*" %%a in ('@echo %~a1') do (
 set folder=%%a
)
if /i "%folder:~0,1%" NEQ "d" @echo LwrCase_Folder - %1 is NOT a folder.&endlocal&goto :EOF
pushd %1
set sw=/B /A /A-D
if /i {%2}=={/S} set sw=%sw% %2
for /f "Tokens=*" %%f in ('dir %sw%') do (
 call LwrCase "%%f"
)
popd
endlocal

1

উইন্ডোজে এটি করার সর্বোত্তম প্রোগ্রাম হ'ল বাল্ক রি নামাম ইউটিলিটি । এটি একটি ম্যান হাতিয়ার। এমনকি ফাইল এবং / অথবা ফোল্ডারগুলির নাম পরিবর্তন করতে আপনি রেজেক্স ব্যবহার করতে পারেন। এটিতে শেল ইন্টিগ্রেশনও রয়েছে (যাতে আপনি ডান ক্লিকের সাহায্যে এক্সপ্লোরার থেকে নির্বাহ করতে পারেন) যা খুব দুর্দান্ত। 64 বিট এবং 32 বিট সংস্করণ উপলব্ধ।


1

এই প্রশ্নের গৃহীত উত্তর , লোফ্টসনেক দ্বারা , বর্তমান ডিরেক্টরিতে কাজ করে তবে সাবফোল্ডারগুলি অনুসন্ধান করে না।  সাউনি লোফটস্নেকের উত্তরটিকে পুনরাবৃত্ত করার জন্য একটি সাধারণ পরিবর্তনের পরামর্শ দিয়েছিল , তবে এটি কার্যকর হয় না, কারণ, renameকমান্ড আপনাকে ফাইলনাম 1 (উত্স) সহ একটি ড্রাইভ এবং পথ নির্দিষ্ট করতে দেয়, ফাইলের নাম 2 (গন্তব্য) কেবল একটি ফাইলের নাম হতে হবে । সহায়তা ( /?) বার্তাটি উদ্ধৃত করতে ,

… আপনি আপনার গন্তব্য ফাইলের জন্য কোনও নতুন ড্রাইভ বা পথ নির্দিষ্ট করতে পারবেন না।

কিন্তু moveকাজ করে যেখানে renameনা, তাই আপনাকে recursively এই কমান্ড দিয়ে ছোট হাতের অক্ষরে ফাইল নামান্তর করতে পারেন:

for /f "Tokens=*" %f in ('dir /l/b/a-d/s') do (move /y "%f" "%f")

কারণ এটি দেখা যাচ্ছে যে Moveডিরেক্টরি পাথের সাথে মানিয়ে নিতে পারে।

উপরের কমান্ডটি সরাসরি কমান্ড প্রম্পট ( CMD.EXE) এ টাইপ করলে কাজ করে । আপনি যদি কোনও ব্যাচের ( .BAT) ফাইলের মধ্যে থেকে এটি করতে চান তবে আপনাকে অবশ্যই %অক্ষরগুলি দ্বিগুণ করতে হবে :

for /f "Tokens=*" %%f in ('dir /l/b/a-d/s') do (move /y "%%f" "%%f")

এবং আপনি সম্ভবত প্রথম বন্ধনী এবং ত্যাগ করতে পারেন /y এবং ঠিক বলতে পারেন do move …


যদি আপনি অন্যদের ইতিমধ্যে পোস্ট করা তথ্য পুনরায় পোস্ট করতে চলেছেন তবে আপনার মূল লেখক (গুলি) সনাক্ত করতে হবে এবং তাদের পোস্টগুলিতে লিঙ্ক করা উচিত।
স্কট

দুঃখিত, তবে আমি এটি দেখিয়েছিলাম যে moveযেখানে কাজ renameকরে না সেখানেই কাজ করে এবং আমি মনে করি আমিই একমাত্র যিনি moveএখানে কমান্ডটি ব্যবহারের পরামর্শ দিয়েছেন । আমি কেবল @ লফটিস্কে এবং @ সাওয়ানীর পরামর্শ নিয়েছি এবং আশা করি তাদের মধ্যে কিছুটা উন্নতি হয়েছে।
অ্যাড্রিয়ান

এটা বিরক্তিকর; আমি ভেবেছিলাম অন্য কেউ উল্লেখ করেছে move, কিন্তু এখন এটি খুঁজে পাচ্ছি না।
স্কট 19

0

পুনরাবৃত্তির সমাধান। এটিকে পুনরাবৃত্তির নাম.এমডি ফাইলের মধ্যে রাখুন ..

for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")
for /r /d %%x in (*) do (
    pushd "%%x"
    for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")
    popd
)

0

শক্তির উৎস

দিরে নেভিগেট করুন এবং চালান:

dir | Rename-Item -NewName { $_.Name.ToLowerInvariant() }

আমি যাচাই করেছি যে এটি কাজ করে। এখানে পাওয়া গেছে: http://www.hanselman.com/blog/PennyPinchingVideoMovingMyWebsitesImagesToTheAureureCDNA এবং ইউজিং কাস্টমডোমেন.এএসপিএক্স

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.