কমান্ড লাইন: তারিখ অনুসারে একাধিক ফাইল সংঘবদ্ধ করুন


3

আমি একটি ডিরেক্টরিতে প্রচুর .txt ফাইল পেয়েছি। ডিরেক্টরিতে .png এবং কিছু .pdf ফাইল রয়েছে। এই কমান্ডটি ব্যবহার করে আমি .txt ফাইলগুলিকে সাফল্যের সাথে কনট্যানেট করেছি:

@ECHO Off
SETLOCAL
for /r %%f in (*.txt) do (
echo.
type "%%f"
)>> output.doc

GOTO :EOF

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

for /r %%f in(*.txt) do ( 

তারিখের সাথে সংঘবদ্ধ করার জন্য অবশ্যই পরিবর্তন করতে হবে I আমি এই কমান্ড লাইন বা ব্যাচ স্ক্রিপ্টিংয়ে নতুন তাই আমি এ সম্পর্কে সত্যই বেশি কিছু জানি না। আমি এই কিভাবে করা উচিত। উত্তরের জন্য সবাইকে ধন্যবাদ।

এই প্রশ্নটি প্রথমবার অন্তর্ভুক্ত না করার জন্য দুঃখিত। আমি আগের আরেকটি প্রশ্নের ভিত্তিতে আমার আরও একটি প্রয়োজনীয়তা পেয়েছি যা আমি আগে জিজ্ঞাসা করেছি ( প্রশ্ন ) .txt ফাইলগুলি সংযুক্ত করার জন্য এবং প্রতিটি ফাইলের উপরে দুটি লাইন যুক্ত করার জন্য (একটি এক্সটেনশন ছাড়াই ফাইলের নাম লেখার জন্য এবং অন্যটি) সংক্ষিপ্ত ফাইলের সাথে সম্পর্কিত তারিখটি লেখার জন্য) .আপনি যে কেউ দয়া করে নীচের ব্যাচ ফাইলটি সংক্ষিপ্ত করতে .txt ফাইলকে তারিখ-সংশোধিত আদেশের মাধ্যমে সংশোধন করতে এবং প্রতিটি ফাইলের উপরে দুটি লাইন যুক্ত করতে পারেন।

@echo off
SETLOCAL
for /r %%f in (*.txt) do (
echo File Name   : %%~nf 
FOR /f %%d IN ("%%~tf") DO echo Date        : %%d
echo.
type "%%f"
) >> output_text.doc

GOTO :EOF

প্রতিটি সমস্যার সমাধান চূড়ান্ত ব্যাচ ফাইল:

@echo off
setlocal enableextensions disabledelayedexpansion

set "root=%cd%"

>"output.doc" (
    for /f "tokens=1,2,*" %%a in ('
        robocopy "%root%\." "%root%\." *.txt /l /s /is /ts /ndl /njh /njs /nc /ns 
        ^| sort 
    ') do (
     echo( %%~nc
     for /f "tokens=1-3 delims=/" %%d in ("%%a") do echo %%f/%%e/%%d
     type "%%~fc"
    )
)

আপনার কি আসলে / সাবডিয়ারগুলিতে পুনরাবৃত্তি করতে চান (প্রদর্শিত কমান্ডটি যেমন করবে)?
wmz

@wmz হ্যাঁ .. এবং আমি চাই যে প্রক্রিয়াটি পুরানো থেকে নতুন পরিবর্তিত তারিখের ক্রম অনুযায়ী করা হোক।
CodeIt

এটি 'খাঁটি' ব্যাচে কঠিন (কারণ কীভাবে সিএমডি [মিস] তারিখগুলি আচরণ করে)। আপনি পাওয়ারশেল সমাধান গ্রহণ করবেন?
wmz

@ ডাব্লুএমজেড আমি কেবলমাত্র প্রয়োজনীয়তা মেনে নেব আমার সমস্ত কাজ শেষ করা উচিত।
CodeIt

উত্তর:


1
@echo off
    setlocal enableextensions disabledelayedexpansion

    set "root=%cd%"

    >"output.doc" (
        for /f "tokens=2,*" %%a in ('
            robocopy "%root%\." "%root%\." *.txt /l /s /is /ts /ndl /njh /njs /nc /ns 
            ^| sort 
        ') do type "%%~fb"
    )

এটি নির্দেশিত মূল ফোল্ডারের অধীনে robocopyসমস্ত .txtফাইলের তালিকা পেতে ব্যবহার করবে ।

ফাইলগুলির সর্বশেষ পরিবর্তিত তারিখ সহ ফাইলগুলির তালিকা তৈরি করা হয়। বিন্যাসে robocopyইউটিসি সময় প্রিন্ট করে yyyy/mm/dd hh:mm:ss, যাতে তালিকাটি সঠিকভাবে বাছাই করা যায়।

বাকী কোডটি কেবলমাত্র for /fচূড়ান্ত তালিকাটি প্রক্রিয়া করার জন্য একটি আদেশ, ফাইলের রেফারেন্সটি পুনরুদ্ধার করা এবং এটি টাইপ করা। প্রতিটি প্রক্রিয়াজাত ফাইলের জন্য ওপেন / ক্লোজ অপারেশন এড়াতে সম্পূর্ণ কমান্ড আউটপুট ফাইলে পুনঃনির্দেশিত হয়।

চূড়ান্ত আউটপুটে ফাইলের নাম এবং টাইমস্ট্যাম্প অন্তর্ভুক্ত করার জন্য এটি প্রয়োজনীয় হিসাবে সম্পাদিত ...

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "root=%cd%"

    >"output.doc" (
        for /f "tokens=1,2,*" %%a in ('
            robocopy "%root%\." "%root%\." *.txt /l /s /is /ts /ndl /njh /njs /nc /ns 
            ^| sort 
        ') do (
            echo(%%~nc
            echo(%%a %%b [%%~tc]
            type "%%~fc"
        )
    )

tokensদফা টাইমস্ট্যাম্প পুনরুদ্ধার করতে থেকে পরিবর্তিত হয়েছে robocopyতাই আমরা আউটপুটে এটা অন্তর্ভুক্ত করতে পারে। পুরো পথ সহ %%aতারিখ, %%bসময় এবং %%cফাইলের নাম ধারণ করবে ।

প্রতিটি ফাইলের জন্য এটি প্রথমে এক্সটেনশন ( %%~nc) ছাড়াই ফাইলের নামটি প্রতিধ্বনিত হয় , তারপরে robocopyটাইম স্ট্যাম্প এবং কেবল রোবোকপির আউটপুটটি ইউটিসি সময় হিসাবে ফাইল টাইমস্ট্যাম্প ( %%~tc) হিসাবে তুলনা করে । তারপরে ফাইলটি টাইপ করা হয়।

আগের মত, সমস্ত আউটপুট চূড়ান্ত ফাইলে পুনঃনির্দেশিত হয়।


আমার পরিবর্তিত প্রশ্ন দেখুন।
কোডআইটি

@ মানুত, উত্তর আপডেট হয়েছে।
এমসি এনডি

@ এমসি_এনডি আমি কেবল তারিখটি লেখার জন্য %% a ব্যবহার করেছি ut তবে সমস্যাটি হ'ল এটি এটিকে yyyy / মিমি / ডিডি ফর্ম্যাটে প্রদর্শন করছে আমি এটি ডিডি / মিমি / ইয়াই ফর্ম্যাটে চাই। আমি এই কিভাবে করা উচিত। আমার সাথে এই কমান্ডটি রয়েছে: ফর / এফ %% ডি ইন ("%% ~ টিফ") করুন প্রতিবেদনের তারিখ: %% d এবং এটি সাফল্যের সাথে তারিখটি dd-mm-yyy ফর্ম্যাটে মুদ্রণ করে তবে কোডটি এতে কাজ করে না আপনি সরবরাহ করেছেন স্ক্রিপ্ট।
CodeIt

1
@manutd, আপনার পরিবর্তন echo(%%aমধ্যে for /f "tokens=1-3 delims=/" %%d in ("%%a") do echo %%f/%%e/%%d, যে, মধ্যে বিপরীত অর্ডার উপাদান বিভেদক এবং আউটপুট হিসাবে স্ল্যাশ ব্যবহার করে তথ্য tokenize
এমসি এনডি

1

পাওয়ারশেল (3-নোট) একটি লাইনার:

gci *.txt -Recurse -File |sort -Property LastWriteTime |% {(gc $_) + "`n"} >output.doc

  • এটি প্রথমে সমস্ত মিলে যাওয়া ফাইলগুলি তালিকাভুক্ত করে ( gci)
  • তারপরে পরিবর্তিত তারিখ অনুসারে এগুলি সাজান ( sort)
  • তারপরে ফাইলের বিষয়বস্তু পায় এবং প্রতিটি ( gc) এ একটি নতুন লাইন যুক্ত হয়
  • এবং অবশেষে আউটপুট ফাইলে সমস্ত লিখুন।

দ্রষ্টব্য: কারণ এটি ব্যবহার করে -Fileযা PS3 এ চালু হয়েছিল। এটি পিএস 2 সিনট্যাক্সে আবার লেখা যেতে পারে, তবে এটি আরও ভার্বোস।

সম্পাদনা করুন: ওপি-র অনুরোধ অনুসারে: {(gc $ _) পরিবর্তন করুন + "` n "read পড়তে:

{"$($_.basename)`n$(get-date -u %d/%m/%Y $_.lastwritetime)`n$(gc $_)`n"}


(বিভিন্ন বিকল্প দেখানোর জন্য স্ট্রিং ইন্টারপোলেশন এবার ব্যবহৃত হয়েছে)

পার্শ্ব দ্রষ্টব্য: [সম্ভব] ফাইল এনকোডিংয়ের অসঙ্গতি এবং সমস্যাগুলি পরিচালনা করা হয়নি।



সংক্ষিপ্ত ফাইলের প্রতিটি ফাইলের উপরে দুটি লাইন পাঠ্য যোগ করতে দয়া করে দয়া করে পিএস ওয়ান লাইনারটি সংশোধন করতে পারেন xt উদাহরণস্বরূপ: ফাইলের নাম: abcd // পরবর্তী লাইনে তারিখ: dd / মিমি / yyyy এবং তারপরে ফাইলের বিষয়বস্তু।
কোডআইটি

আপনার মন্তব্য অনুযায়ী পরিবর্তিত @manutd
wmz

1
for /f "delims=:" %f in ('dir *.txt /O:D /T:W /B') do @echo %f

এই কমান্ডটি dirসর্বাধিক সর্বশেষতম তারিখ অনুসারে বাছাই করার জন্য ( /O:D) শেষ লিখিত তারিখ ( /T:W) এবং খালি বিন্যাস ( /B) কেবল ফাইলের নামগুলি ব্যবহার করতে ব্যবহার করবে । সেট delimsথেকে :forকমান্ড স্পেস বা কমা উপর ভিত্তি করে ফাইলের নাম বিশ্লেষণ করতে যেহেতু চেষ্টা থেকে এটা রাখে :একটি ফাইল মঞ্জুরিপ্রাপ্ত নয়।

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