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


40

উইন্ডোজের কোন কমান্ড ইউনিক্স থেকে পুনরাবৃত্ত মুভ / নাম পরিবর্তন কমান্ড অনুকরণ করে?

উত্তর:


56

এক্সপির forকমান্ড ব্যবহার করুন । উদাহরণস্বরূপ কমান্ড লাইন থেকে ( %%xপরিবর্তে একটি ব্যাচ ফাইলে ব্যবহার করুন) একটি পুনরাবৃত্ত পদক্ষেপ করতে:

for /r %x in (foo) do move "%x" "drive:\path\bar"

একটি পুনরাবৃত্ত নামকরণ করতে:

for /r %x in (*.c) do ren "%x" *.cpp

উদাহরণ ব্যাচ:

for /r "< DIR >" %%x in (*.c) do ren "%%x" *.cpp

এটি এখন পর্যন্ত সহজ সমাধান, অনেক অনেক ধন্যবাদ!
javamonkey79

একটি ব্যাচ প্রোগ্রামে ফর কমান্ড ব্যবহার করতে,% ভেরিয়েবলের পরিবর্তে %% ভেরিয়েবল নির্দিষ্ট করুন।
টম রবিনসন

আপনি কীভাবে আলাদা আলাদা উত্স ডিরেক্টরিতে সিডব্লিউডিং না করে এই কাজটি করবেন?
ইভান ক্যারল

আমি প্রতিটি ফাইলের প্রতিটি '% 20' ফাইলকে একটি সমতল '' এর সাথে প্রতিস্থাপন করতে এটি ব্যবহার করার চেষ্টা করছি। আমি এটা কিভাবে করবো?
মাইক ওয়ারেন

@ রবক্যাম, আমি আসলে লুপটিতে কাজ করতে যাই তবে কেবলমাত্র 1 টি ফাইলের নতুন নামকরণ করি .. একাধিক ফাইল এক্সটেনশনগুলি *.*কীভাবে কাজ করবে তা চিনতে আমি কীভাবে ওয়াইল্ড কার্ড সেট করব ?
ডিজে ক্র্যাজে

3

robocopy "C:\Source Folder" "C:\Destination Folder" /E /COPYALL /XJ


Description of parameters:
/E - copy subdirectories, including Empty ones (/S to exclude empty ones)
/COPYALL - COPY ALL file info (equivalent to /COPY:DATSOU)
/XJ - eXclude Junction points and symbolic links. (normally included by default).

2

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

উত্স ভাগ্য সরান
স্প্রিং

মাইক্রোসফ্ট উইন্ডোজ এক্সপি [সংস্করণ 5.1.2600]
সরানো /?

ফাইল সরানো এবং ফাইল এবং ডিরেক্টরি নামকরণ।

এক বা একাধিক ফাইল সরিয়ে নিতে:
সরান [/ ওয়াই | / -Y] [ড্রাইভ:] [পথ] ফাইলের নাম 1 [, ...] গন্তব্য

ডিরেক্টরিটির নতুন নামকরণ করতে:
সরান [/ ওয়াই | / -Y] [ড্রাইভ:] [পথ] dirname1 dirname2

  [ড্রাইভ:] [পথ] ফাইলের নাম 1 ফাইলের অবস্থান এবং নাম নির্দিষ্ট করে
                          অথবা আপনি যে ফাইলগুলি সরাতে চান সেগুলি।
  গন্তব্য ফাইলের নতুন অবস্থান নির্দিষ্ট করে। গন্তব্য
                          ড্রাইভ লেটার এবং কোলন সমন্বিত থাকতে পারে, ক
                          ডিরেক্টরি নাম, বা একটি সংমিশ্রণ। আপনি যদি চলন্ত হয়
                          শুধুমাত্র একটি ফাইল, আপনি যদি একটি ফাইলের নাম অন্তর্ভুক্ত করতে পারেন তবে
                          আপনি যখন ফাইলটি সরান তখন আপনি নাম পরিবর্তন করতে চান।
  [ড্রাইভ:] [পথ] dirname1 আপনি যে ডিরেক্টরিটি নাম পরিবর্তন করতে চান তা সুনির্দিষ্ট করে।
  dirname2 ডিরেক্টরিটির নতুন নাম উল্লেখ করে।

  / ওয়াই আপনি চাইছেন তা নিশ্চিত করতে অনুরোধ জানায় resses
                          একটি বিদ্যমান গন্তব্য ফাইল ওভাররাইট করুন।
  / -Y আপনি ওভাররাইট করতে চান তা নিশ্চিত করার অনুরোধ জানায়
                          একটি বিদ্যমান গন্তব্য ফাইল।

স্যুইচ / ওয়াই COPYCMD এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে উপস্থিত থাকতে পারে।
এটি কমান্ড লাইনে / -Y দিয়ে ওভাররাইড করা হতে পারে। ডিফল্ট হয়
মুভি কমান্ডটি কার্যকর করা না হলে ওভাররাইটগুলিতে অনুরোধ জানানো হবে
একটি ব্যাচ স্ক্রিপ্ট মধ্যে।

আমি সত্যিই পুনরাবৃত্ত পুনর্নবীকরণের সন্ধান করছি, দুঃখিত আমি প্রশ্নের অংশ হিসাবে পদক্ষেপটি অন্তর্ভুক্ত করেছি।
javamonkey79

1

অন্তর্নির্মিত XCOPY কমান্ডটি নিকটে। এটি একটি পুনরাবৃত্তির অনুলিপি করবে, তবে আমি মনে করি না এটি পুনর্নামকে সমর্থন করে।


1
ভুলে যাবেন না যে এক্সকপি ডিফল্টরূপে লুকানো ফাইলগুলিকে উপেক্ষা করবে।
রিচার্ড হ্যারিসন

1
for /r %%x in (%1) do ren "%%x" %2

এটি পুনরাবৃত্তভাবে ফাইলটির নাম পরিবর্তন করবে :-)

একটি ফাইলে সংরক্ষণ করুন এক্সটেনশান এবং এক্সটেনশান থেকে 2 টি আর্গুমেন্ট দিন।

উদাহরণস্বরূপ: ফাইলের নাম হল টেস্ট.ব্যাট কমান্ড: পরীক্ষা * .আবি * .বিএমপি

এটি বিএমপি-তে এক্সটেনশন এভিআই সহ সমস্ত ফাইলের নাম পরিবর্তন করে (সমস্ত সাবফোল্ডারে :))

দ্রষ্টব্য: রব কামালের দ্বারা 26 অক্টোবর 13:20 এ উত্তর দেওয়া পোস্টটির জন্য এটি সংশোধন। তিনি দিয়েছেন

/r %x in (*.c) do ren "%x" *.cpp

যেখানে এটির পরিবর্তে % এর পরিবর্তে %% রয়েছে


%% শুধুমাত্র ব্যাচ ফাইলের জন্য প্রয়োজন।
প্যারাড্রয়েড



1

আমি একটি ভিবি স্ক্রিপ্ট তৈরি করেছি যা অনুসন্ধানের জন্য এবং ডিরেক্টরিগুলির নামগুলি প্রতিস্থাপন করবে ... আমার কাছে একটি ফাইল সংস্করণও রয়েছে, তবে আমি মনে করি এটি আপনাকে নিজের স্ক্রিপ্ট দিয়ে শুরু করার জন্য যথেষ্ট। আমি এই স্ক্রিপ্টটি যেভাবে ব্যবহার করি তা হ'ল আমার একটি আছে fileandreplacedirs.vbsএবং আমি যে ফোল্ডারটির নাম পরিবর্তন করতে চাইছি সেটিকে একই ফোল্ডারে রেখেছি। এছাড়াও, এটি অগত্যা ফোল্ডারে পুনরাবৃত্তি হয় না, তবে সামান্য পরিবর্তন করে

search1  = InputBox("Search for...", "", "")
replace1 = InputBox("replace with...", "", "")

Dim MyFile
MyFiles = GetFileArray(".")

For Each MyFile In MyFiles
    NewFilename = Replace(MyFile.Name, search1, replace1)
    If InStr( MyFile.Name, search1 ) Then MyFile.Name = NewFilename
Next

MsgBox "Done..."

function GetFileArray(ByVal vPath)
    'Get our objects...
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Folder = FSO.Getfolder(vPath)
    Set Files = Folder.SubFolders

    'Resize the local array
    'Arrays are 0 based but Files collection is 1 based.
    if Files.count = 0 then
        GetFileArray = array()
        Exit Function
    Else
        Index = 0
        Redim FileList(Files.Count-1)
        For Each File In Files
            set FileList(Index) = File
            Index = Index + 1
        Next
        GetFileArray = FileList
    End If

    'Always good practice to explicitly release objects...
    Set FSO = Nothing
    Set Folder = Nothing
    Set Files = Nothing

End function

0

একটি সাধারণ ডস কমান্ড ব্যবহার করুন।

  1. সিডি উত্স ডিরেক্টরিতে যেখানে আপনি ফাইলের এক্সটেনশনগুলির পুনরাবৃত্তভাবে নাম পরিবর্তন করতে চান।

  2. এই আদেশটি টাইপ করুন:

    ren *.[CurrentFileExtension] *.[DesiredFileExtension]
    

1
এটি সিডব্লিউডের পক্ষে কাজ করে, কিন্তু সাব-ডিরেক্টরিগুলি নয়, সুতরাং এটি পুনরাবৃত্ত হয় না। যদিও আপনাকে ধন্যবাদ :)
javamonkey79

0

if existফাইলটি প্রতিটি ফোল্ডারে উপস্থিত না থাকলে আমি ত্রুটি ফেরানোর বিষয়টি এড়াতে যুক্ত করেছিলাম (এটি জেনকিন্সে গুরুত্বপূর্ণ তাই এটি কোনও বিল্ড ভেঙে দেয় না):

for /r %x in (foo) do if exist "%x" move "%x" "drive:\path\bar"

একটি পুনরাবৃত্ত নামকরণ করতে:

for /r %x in (*.c) do if exist "%x" ren "%x" *.cpp

উদাহরণ ব্যাচ:

for /r "< DIR >" %%x in (*.c) do if exist "%%x" ren "%%x" *.cpp

1
একটি নতুন উত্তর তৈরি করার পরিবর্তে, আপনি যে উত্তরটি যুক্ত করেছেন তা আপনার সত্যই সহজভাবে সম্পাদনা করা উচিত।
লস্টবালুন

0

পাওয়ারশেল আপনার বন্ধু। কোনও ব্যাচ ফাইল বা স্ক্রিপ্টের প্রয়োজন নেই। উদাহরণস্বরূপ, দূরবর্তী ডিরেক্টরিতে সমস্ত .tiff ফাইলকে পুনরায় নামকরণ করতে .টিফের জন্য আপনি পাওয়ারশেল থেকে নিম্নলিখিত কমান্ডটি চালাতে পারেন:

get-childitem "\\\servername\d$\path" -recurse -Include *.tiff | Rename-Item -NewName { $_.Name.replace(".tiff",".tif") }


0

আমি পাই পাই এই পাইথন লিপিটি যা কাজ করে:

for root, dirs, files in os.walk(cur_dir):  
    for filename in files:  
        file_ext = os.path.splitext(filename)[1]  
        if old_ext == file_ext:  
            oldname = os.path.join(root, filename)  
            newname = oldname.replace(old_ext, new_ext)  
            os.rename(oldname, newname)

পাওয়া গেছে: http://gomputor.wordpress.com/2008/09/29/change-the-extension-of-m Multipleple-files-in-a-chosen-directory-with-python/

আমি পাইথনকে আমার পথে যুক্ত করেছি এবং পাইথন স্ক্রিপ্টটিকে উপরে 'ইউটিস' ফোল্ডারে রেখেছি। আমি তখন এটি চালানোর জন্য এই সাধারণ ব্যাচের স্ক্রিপ্ট তৈরি করেছি: rn.bat:

python \utils\rn.py %1 %2 %3

কমান্ড লাইন থেকে এর আরোগুলি নেওয়ার জন্য আমি উপরে পাইথন স্ক্রিপ্টটি আপডেট করেছি। rn.py:

import sys
import os

cur_dir = sys.argv[1]
old_ext = sys.argv[2]
new_ext = sys.argv[3]

#print cur_dir, old_ext, new_ext
for root, dirs, files in os.walk(cur_dir):  
    for filename in files:  
        file_ext = os.path.splitext(filename)[1]

        if old_ext == file_ext:  
            oldname = os.path.join(root, filename)  
            newname = oldname.replace(old_ext, new_ext)  
            os.rename(oldname, newname)

অবশেষে এখনই সকলকেই করা দরকার এর কিছু:

>rn . .foo .bar

অথবা

>rn \ .exe .txt

দ্বিতীয়টির সাথে মজা করুন :)

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