ফোল্ডার এবং সাবফোল্ডারগুলিতে সমস্ত ফাইলের ছোট হাতের অক্ষরে নাম পরিবর্তন করার জন্য আমার একটি উপায় দরকার।
আমি জানাতে চাই যে এটি করার কোনও উপায় যদি কেবল উইন্ডো ব্যবহার করে (এক্সপি বা 7)
ফোল্ডার এবং সাবফোল্ডারগুলিতে সমস্ত ফাইলের ছোট হাতের অক্ষরে নাম পরিবর্তন করার জন্য আমার একটি উপায় দরকার।
আমি জানাতে চাই যে এটি করার কোনও উপায় যদি কেবল উইন্ডো ব্যবহার করে (এক্সপি বা 7)
উত্তর:
ডিরেক্টরিতে যান এবং নিম্নলিখিত কমান্ডটি চালান:
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
- (দিরের জন্য প্যারামিটার) ডিরেক্টরিগুলি তালিকাভুক্ত করবেন না । (এর অর্থ দাঁড়ায় , দাঁড়ানো এবং দাঁড়ানো ) ।a
attribute
-
not
d
directory
rename "%f" "%f"
- ফাইলটির নিজস্ব নাম দিয়ে পুনরায় নামকরণ করুন, যা dir
কমান্ড এবং /l
সংমিশ্রণ দ্বারা প্রকৃতপক্ষে নিম্নতর হয় ।for /f "Tokens=*" %f in ('dir /l/b/a-d/s') do (rename "%f" "%f")
( দিরের সাথে যুক্ত / র)
স্পেসটোর্নাডো রেনামার একটি উইন্ডোজ প্রোগ্রাম যা ব্যাচগুলিতে প্রচুর পরিমাণে ফাইলের নাম পরিবর্তন করে। আপনি পাঠ্য সন্ধান এবং প্রতিস্থাপন করতে পারবেন, নির্দিষ্ট সংখ্যক অক্ষর সরিয়ে ফেলতে পারবেন, কেসটিকে নিম্ন, উপরের বা প্রথম অক্ষরের মূলধনীতে পরিবর্তন করতে পারবেন এবং প্রতিটি ফাইলের নামের শুরু বা শেষের দিকে (সংযোজন / প্রিপেন্ড) পাঠ্য যুক্ত করতে পারেন
উইন্ডোজ 7 যেহেতু আপনি সেই কাজের জন্য পাওয়ারশেল ব্যবহার করতে পারেন
Get-ChildItem "C:\path\to\folder" -recurse |
Where {-Not $_.PSIsContainer} |
Rename-Item -NewName {$_.FullName.ToLower()}
- আপনার মূল ফোল্ডারটি চয়ন করুন - রুট ফোল্ডারের ভিতরে থাকা
সমস্ত ফাইল এবং সাবফোল্ডারগুলির নাম পরিবর্তন করা হয়
- ফোল্ডারের নাম বাদ দেওয়া হয় Where {-Not $_.PSIsContainer} |
এখানে কেবল স্থানীয় সেমিডি.এক্সই কমান্ড ব্যবহার করে একটি যথাযথ পুনরাবৃত্ত কমান্ড লাইন সমাধান রয়েছে যা আসলে কাজ করে। আমি বিশ্বাস করি এটি সবচেয়ে সহজতম নেটিভ সমাধান:
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
/a-d
স্যুইচটি সরিয়ে দেয় এবং এটি ফোল্ডারের নামগুলিও ছোট করে রাখবে।
" D"') was unexpected at this time.
এটি সরাসরি কমান্ড হিসাবে চালানো ভাল কাজ করে, একটি ব্যাচ ফাইল হিসাবে চালিত হলে ঠিক কাজ করে না। এটি কীভাবে ব্যাচের ফাইল হিসাবে কাজ করবেন তা নিশ্চিত নন, তবে ভেবেছিলেন যে আমি বিষয়টিকে সামনে রেখে দেব।
%D
অবশ্যই পরিবর্তন করতে হবে %%D
এবং %F
আপনি %%F
যদি একটি ব্যাচের স্ক্রিপ্টের মধ্যে কমান্ডটি রেখে দেন।
আমার ব্যক্তিগত প্রিয় ব্যাচের ফাইল-নামকরণের ইউটিলিটি হ'ল সাইলগের ওয়াইল্ডেরেনাম । অন্যান্য অনেক বৈশিষ্ট্যের মধ্যে এটি ফাইলের ক্ষেত্রে পরিবর্তন করতে পারে। ওয়াইল্ডরেনাম সম্পর্কে সর্বোত্তম জিনিস সম্ভবত এটি নিয়মিত-এক্সপ্রেশন সমর্থন করে!
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
&
http://www.dostips.com/DtCodeCmdLib.php#Function.toLower একটি সাধারণ ফাংশন দেয় যা আপনাকে ব্যাচ ফাইল থেকে অন্তর্ভুক্ত করতে এবং কল করতে সক্ষম হওয়া উচিত।
সুতরাং ফোল্ডার / ফাইল নামগুলির উপর ব্যাচ ফাইলটি পুনরাবৃত্তি করুন এবং নামের ছোট হাতের সংস্করণ তৈরি করতে এই ফাংশনটি কল করুন।
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
উইন্ডোজে এটি করার সর্বোত্তম প্রোগ্রাম হ'ল বাল্ক রি নামাম ইউটিলিটি । এটি একটি ম্যান হাতিয়ার। এমনকি ফাইল এবং / অথবা ফোল্ডারগুলির নাম পরিবর্তন করতে আপনি রেজেক্স ব্যবহার করতে পারেন। এটিতে শেল ইন্টিগ্রেশনও রয়েছে (যাতে আপনি ডান ক্লিকের সাহায্যে এক্সপ্লোরার থেকে নির্বাহ করতে পারেন) যা খুব দুর্দান্ত। 64 বিট এবং 32 বিট সংস্করণ উপলব্ধ।
এই প্রশ্নের গৃহীত উত্তর , লোফ্টসনেক দ্বারা , বর্তমান ডিরেক্টরিতে কাজ করে তবে সাবফোল্ডারগুলি অনুসন্ধান করে না।
সাউনি লোফটস্নেকের উত্তরটিকে
পুনরাবৃত্ত করার জন্য একটি সাধারণ পরিবর্তনের পরামর্শ দিয়েছিল , তবে এটি কার্যকর হয় না, কারণ, 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
, কিন্তু এখন এটি খুঁজে পাচ্ছি না।
শক্তির উৎস
দিরে নেভিগেট করুন এবং চালান:
dir | Rename-Item -NewName { $_.Name.ToLowerInvariant() }
আমি যাচাই করেছি যে এটি কাজ করে। এখানে পাওয়া গেছে: http://www.hanselman.com/blog/PennyPinchingVideoMovingMyWebsitesImagesToTheAureureCDNA এবং ইউজিং কাস্টমডোমেন.এএসপিএক্স