উইন্ডোজ 7-এ, তারিখ / সময় স্ট্যাম্প আপডেট করার জন্য আমি কীভাবে কোনও ডিরেক্টরিতে (সাব-ডাইরেক্টরিগুলি সহ) সমস্ত ফাইলকে পুনরাবৃত্তভাবে স্পর্শ করতে পারি?
উইন্ডোজ 7 এর কি এটি সম্পাদন করার কোনও ব্যবস্থা আছে?
উইন্ডোজ 7-এ, তারিখ / সময় স্ট্যাম্প আপডেট করার জন্য আমি কীভাবে কোনও ডিরেক্টরিতে (সাব-ডাইরেক্টরিগুলি সহ) সমস্ত ফাইলকে পুনরাবৃত্তভাবে স্পর্শ করতে পারি?
উইন্ডোজ 7 এর কি এটি সম্পাদন করার কোনও ব্যবস্থা আছে?
উত্তর:
বিভিন্ন সম্ভাবনা রয়েছে:
একটি ইউনিক্স একটি বন্দর ব্যবহার করুন touch
কমান্ড কেবল মেশা find
এবং touch
ইউনিক্স উপায়। বিভিন্ন পছন্দ আছে। খালি উল্লিখিতগুলি হ'ল জিএনইউউইন 32 , সাইগউইন এবং আনক্সিটিলস । কম সুপরিচিত, তবে কিছু উপায়ে আরও ভাল, এসএফইউএ ইউটিলিটি টুলকিট- এর সরঞ্জামগুলি যা ইউএনআইএক্স -ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য সাবসিস্টেমে চালিত হয় যা উইন্ডোজ 7 আলটিমেট সংস্করণ এবং উইন্ডোজ সার্ভার 2008 আর 2 সহ বাক্সে ঠিক সেখানে আসে। (উইন্ডোজ এক্সপি-র জন্য, ইউনিক্স সংস্করণ ৩.৫-এর জন্য পরিষেবাদি ডাউনলোড ও ইনস্টল করা যায় )) এই টুলকিটটিতে কর্ন এবং সি শেলের মাধ্যমে এবং থেকে, প্রচুর পরিমাণে কমান্ড-লাইন টিইউআই সরঞ্জাম রয়েছেmv
du
perl
এবং awk
। এটি x86-64 এবং IA64 স্বাদ পাশাপাশি x86-32 উভয় ক্ষেত্রেই আসে। প্রোগ্রামগুলি উইন্ডোজের যথাযথ পসিক্স পরিবেশে cygwin1.dll
উইন 32 এর উপর এমুলেটর ডিএলএল (যেমন ) লেয়ারিং জিনিসগুলির চেয়ে চালিত হয় । এবং হ্যাঁ, টুলকিটটিতে রয়েছে touch
এবং find
পাশাপাশি আরও 300 জন রয়েছে।
অবশ্যই এই ফাইলটির প্রতিটি স্পর্শ করার জন্য পৃথক প্রক্রিয়া চালানোর সুপরিচিত অসুবিধা রয়েছে have নিম্নলিখিত বিকল্পগুলির সাথে এটি কোনও সমস্যা নয়।
touch
লোকেরা লিখেছেন এবং প্রকাশ করেছেন এমন অনেক নেটিভ উইন 32 কমান্ডগুলির মধ্যে একটি ব্যবহার করুন । তাদের মধ্যে অনেকগুলি ইউনিক্সের find
চারপাশে জড়ানোর প্রয়োজনীয়তা ছাড়াই পুনরাবৃত্তি করার জন্য বিকল্পগুলি সমর্থন করে। (সর্বোপরি, তারা ইউজারবেসকে লক্ষ্য করে যা একটি touch
কমান্ড সন্ধান করছে কারণ এতে ইউনিক্স কমান্ডের পুরো বোঝা নেই) এটি স্টাফেন দুগুয়ের একটিtouch
যা আপনি দেখতে পাচ্ছেন একটি --recursive
বিকল্প রয়েছে।
সিএমডির আরকেন রহস্যের সাথে চালাক হন। অন্য উত্তরে বর্ণিত হিসাবে, কমান্ডের COPY /B myfile+,,
অল্প-পরিচিত "প্লাস" সিনট্যাক্স ব্যবহার করে কোনও ফাইলের সর্বশেষ পরিবর্তন তারিখের স্ট্যাম্পটি আপডেট করবে COPY
( ঘটনাক্রমে এখানে আরও পাওয়া যাবে )। অবশ্যই FOR /R
এটি অপারেশনটি পুনরাবৃত্তভাবে সঞ্চালনের জন্য একত্রিত করা যেতে পারে , যেমন এখানে অন্য উত্তরে ইঙ্গিত দেওয়া হয়েছে।
একটি প্রতিস্থাপন কমান্ড দোভাষী ব্যবহার করুন এবং সিএমডি থেকে কম চালাক এবং আরও সোজা হয়ে উঠুন। জেপি সফটওয়্যারের টিসিসি / এলই হ'ল একটি। এটি এর কমান্ডে একটি /S
বিকল্প যুক্ত করে , যার অর্থ একটি মোড়কের প্রয়োজনীয়তা দূর করতে "প্লাস" সিনট্যাক্সের সাহায্যে কেউ ব্যবহার করতে পারে । তবে এটি সত্যই এখনও নিজের জন্য জীবনকে অহেতুক কঠিন করে তুলছে, এটি বিবেচনা করে যে টিসিসি / এলই-এর একটি বিল্ট ইন টাচ কমান্ড রয়েছে যা সরাসরি কোনও বিকল্পকে সমর্থন করে ।COPY
COPY /S
FOR
/S
COPY /B file+,,
যাবার উপায়, কোনও অতিরিক্ত ব্যবহারের দরকার নেই ... :-)
(ls file).LastWriteTime = DateTime.now
যেহেতু এগুলি সহজেই উপলভ্য, তাই আমি অযাচিত ব্যবহারের সুযোগ নেওয়ার পরামর্শ দেব । এগুলিতে এগুলি find
এবং touch
আদেশগুলি অন্তর্ভুক্ত রয়েছে যা এটি খুব সহজ করে তুলবে।
শীর্ষস্থানীয় ডিরেক্টরিতে পরিবর্তন করার পরে আপনি সংশোধন করতে চান:
অনুসন্ধান . -প্রকার এফ-এক্সেক স্পর্শ {} +
শুধুমাত্র বিদ্যমান উইন্ডোজ কার্যকারিতা (ইনস্টল করার জন্য অতিরিক্ত কিছু নয়) ব্যবহার করতে এর মধ্যে একটি ব্যবহার করে দেখুন:
forfiles /P C:\Path\To\Root /S /C "cmd /c Copy /B @path+,,"
(নির্দিষ্ট পথে শুরু হওয়া সমস্ত ফাইলকে পুনরাবৃত্তভাবে "স্পর্শ করুন")
অথবা
forfiles /S /C "cmd /c Copy /B @path+,,"
(বর্তমান ডিরেক্টরিতে শুরু হওয়া সমস্ত ফাইলকে পুনরাবৃত্তভাবে "স্পর্শ করুন")
আমি জানি এটি সম্ভবত কিছুটা দেরী হয়েছে তবুও, অন্য কারও যদি একই জিনিসটির প্রয়োজন হয় তবে আমি আমার উত্তরটি রেখে দেব।
জন T 'র উত্তর উইন্ডোজ 7. আমাকে জন্য কাজ না করে কিছু গবেষণা আমি এই ইউটিলিটি নামক পাওয়া পর SKTimeStamp , যা কাজ ঠিকভাবে আছে।
এখানে কিভাবে এটি কাজ করে আরও বিশদের সঙ্গে একটি নিবন্ধ আছে: http://www.trickyways.com/2009/08/how-to-change-timestamp-of-a-file-in-windows-file-created-modified-and অ্যাক্সেসড / ।
আপনার সম্পাদন করার জন্য প্রয়োজনীয় পদক্ষেপগুলি এখানে:
ভাল খবর! আপনার সমস্ত ফাইল আপডেট করা হয়েছে! কোনও ইউনিক্স ব্যবহার বা কমান্ড লাইনের প্রয়োজন নেই।
অথবা আপনি উইন্ডোজটিতে ইতিমধ্যে নির্মিত সরঞ্জামগুলি একবার ব্যবহার করতে পারেন, আপনার কাছে ইতিমধ্যে কোনও ধরণের একটি "স্পর্শ" সরঞ্জাম থাকলে:
for /r %i in (C:\Path\To\Root\*) do @touch "%i"
অথবা
forfiles /P C:\Path\To\Root /S /C "touch @file"
(এনবি: আপনি যদি কোনও ব্যাচ ফাইল থেকে এটি করছেন এবং for
কমান্ডটি ব্যবহার করতে চান তবে আপনার ভেরিয়েবলের জন্য দ্বিগুণ শতাংশ চিহ্ন ব্যবহার করার বিষয়টি নিশ্চিত করুন eg (যেমন %%i
পরিবর্তে %i
)
পাওয়ারশেল ব্যবহার:
C:\> powershell (ls your-file-name-here).LastWriteTime = Get-Date
The property 'LastWriteTime' cannot be found on this object.
উপরে জন টি এর উত্তর প্রসঙ্গে:
আমি find
একটি \;
এবং '' + ' দিয়ে একটি এক্সিকিউটিভ কমান্ড শেষ করার মধ্যে পার্থক্যটি বোঝার চেষ্টা করছিলাম (আমি পরবর্তীটির সম্পর্কে জানতাম না)।
(থেকে এই কাজের ছিল এখানে )
-exec command ;
আদেশ কার্যকর; যদি 0 স্ট্যাটাস ফিরে আসে তবে সত্য অনুসন্ধানের জন্য নিম্নলিখিত সমস্ত যুক্তিগুলি আর্গুমেন্ট ';' দ্বারা গঠিত না হওয়া অবধি কমান্ডটিতে যুক্তি হিসাবে নেওয়া হবে; সম্মুখীন হয়। '{}' স্ট্রিংটি বর্তমান ফাইলের নাম দ্বারা প্রসেস করা হচ্ছে যেখানেই এটি কমান্ডের আর্গুমেন্টগুলিতে ঘটে সেখানেই যুক্ত করা হয়, যেখানে এটি একা রয়েছে, সেখানে অনুসন্ধানের কয়েকটি সংস্করণ হিসাবে।
-exec command {} +
এই-এক্সেক অ্যাকশনের এই রূপটি নির্বাচিত ফাইলগুলিতে নির্দিষ্ট কমান্ডটি চালায়, তবে প্রতিটি নির্বাচিত ফাইলের নাম শেষে অন্তর্ভুক্ত করে কমান্ড লাইনটি নির্মিত হয়; কমান্ডের অনুরোধের মোট সংখ্যা মিলিত ফাইলগুলির সংখ্যার তুলনায় অনেক কম হবে। কমান্ড লাইনটি একইভাবে নির্মিত হয়েছে যেমন xargs তার কমান্ড লাইনগুলি তৈরি করে। কমান্ডের মধ্যে '{}' কেবলমাত্র একটি উদাহরণ অনুমোদিত। কমান্ডটি শুরু ডিরেক্টরিতে কার্যকর করা হয়।
c:\myfolder
2 ফাইল a.txt
এবং একটি ফোল্ডার বিবেচনা করুনb.txt
find . -type f -exec touch {} +
এটি ব্যাখ্যা করা হয়: touch a.txt b.txt
find . -type f -exec touch {} \;
ব্যাখ্যা করা হয়:touch a.txt
touch b.txt
সুতরাং, # 1 অনেক দ্রুত (তবে কমান্ডের নীচে exec
কেবলমাত্র একটি {}
প্লেসোল্ডার থাকতে পারে এমন সীমাবদ্ধতাও ভোগ করে )।