এক ফোল্ডার থেকে অন্য ফোল্ডারে কপি করার জন্য txt এ আংশিক ফাইল নামগুলির তালিকা ব্যবহার করুন


0

আমার একাধিক ছবিতে একটি ফোল্ডারে সংরক্ষিত রয়েছে এবং তাদের মাধ্যমে সাজানো হয়েছে যাতে "দৃশ্যাবলী" বা "প্রযুক্তিগত" হিসাবে কিছু ফোল্ডারে অনুলিপি করা যায় এবং একটি পাঠ্য ফাইলে প্রতিটি ফোল্ডারের জন্য আংশিক ফাইল নামগুলির একটি তালিকা তৈরি করা হয়। যেমন। Scenery.txt

4811
4819
4820

এটি অনন্য ফাইল নাম্বার যা পূর্ণ ফাইল নামগুলির অংশ, উদাহরণস্বরূপ:

C:\Users\drewb\Pictures\2018_08_Inuvik\All\DSC_4811.jpg

আমার কাছে পাওয়ারলেলে একটি স্ক্রিপ্ট আছে যা আমার জন্য কাজ করেছে যখন আমার একটি .txt ফাইলে তালিকাবদ্ধ সম্পূর্ণ ফাইল নামগুলির একটি তালিকা ছিল কিন্তু আমি বড় সংখ্যক ছবির কারণে সময় বাঁচানোর জন্য শুধুমাত্র ইমেজ নাম লিখেছি। আমি আশা করি এই তালিকার একটি অ্যারে তৈরি করার একটি উপায় রয়েছে এবং একটি লুপে পূর্ণ ফাইলের নামতে একটি পরিবর্তনশীল হিসাবে এটি ফিড করুন, তবে যে কোনও পরামর্শ প্রশংসা করা হয়।

এই কোডটি আমার সাথে সম্পূর্ণরূপে টেকসই নামে কাজ করেছিল

Get-Content C:\Users\drewb\Pictures\2018_08_Inuvik\Technical.txt | ForEach-Object {copy-item $_ C:\Users\drewb\Pictures\2018_08_Inuvik\Technical}

মীমাংসিত: আমি এক্সেলের ফাইলের ফাইলটি সংহত করে এবং ফাইল এক্সটেনশানটি এক্সেকেল করে এটি সমাধান করেছি তারপর আমি পূর্বে ব্যবহৃত পিএস স্ক্রিপ্টটি ব্যবহার করেছি। যাইহোক, আমি মনে করতে পারি যে এইটিকে স্ক্রিপ্ট করা যেতে পারে আরো সরাসরি উপায় থাকতে হবে।


প্রতিটি নতুন লাইনে ফাইলের ছবির সংখ্যা বা তারা একে অপরের পাশে?
SimonS

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

ইমেজ সংখ্যা প্রতিটি নতুন লাইন হয়। আমি কি ব্যবহার করতে পারে তার উপর আপনার কোন ধারনা আছে?
Drew Branson

@ ড্রিউব্রান্সন আমি 100% প্রশ্ন বুঝতে পারছি না। কোন ছবি কোন ফোল্ডারে যেতে হবে? আপনি একটি ফোল্ডার তৈরি করতে চান যেমন 4811 এবং সব ফাইল যা আছে 4811 তাদের ফাইলনেম এই ফোল্ডারে যেতে হবে? আপনার প্রশ্ন সম্পাদনা করে, একটু বিবর্ণ করুন
SimonS

আপনি প্রশ্ন একটু বেশি স্বচ্ছতা প্রয়োজন। Powershell একটি ভাল সমাধান মত মনে হয়, কিন্তু অন্য ব্যাখ্যা ছাড়া উত্তর দিতে কঠিন। আপনি আপনার চিত্রগুলি থেকে সমস্ত সংখ্যাসূচক মানগুলি সরাতে পারেন, যদি তাদের সমস্ত আপনার উদাহরণ চিত্রের মতো একই ভাবে নামকরণ করা হয়, যেমন: gci | select -ExpandProperty BaseName | % { $_.Split('_')[1] }
root

উত্তর:


1

সংক্ষিপ্ত উত্তর

বর্তমান ডিরেক্টরির মধ্যে ছবির ফাইল নাম একই প্যাটার্ন অনুসরণ করে থাকে DSC_XXXX.jpg (কোথায় XXXX একটি সংখ্যা) এবং নাম একটি ফাইল Technical.txt এই সংখ্যক কিছু ধারণকারী, নিম্নলিখিত কমান্ড অনুলিপি করা হবে Technical ফোল্ডার (এটি বর্তমান ডিরেক্টরির মধ্যে বিদ্যমান অনুমান) সব ফাইল যা একটি সংখ্যা প্রদান করা হয় Technical.txt ফাইল:

Get-Content Technical.txt | ForEach-Object { Copy-Item "DSC_$_.jpg" Technical }

যদি Technical.txt এবং ছবি ফাইল এবং Technical ডিরেক্টরি বর্তমান ডিরেক্টরির মধ্যে নেই, পূর্ণ বা আপেক্ষিক পাথ প্রদান করা হবে, উদাহরণস্বরূপ:

Get-Content c:\path1\to\Technical.txt | ForEach-Object { Copy-Item "c:\path2\to\pictures\DSC_$_.jpg" c:\path3\to\Technical }

ব্যাখ্যা

  • দ্য "DSC_$_.jpg" কমান্ডের এক্সপ্রেশনটি যে ফাইলটি থেকে পঠিত হয়েছিল সেখান থেকে ছবির নাম নাম তৈরি করতে ব্যবহৃত হয় Technical.txt ফাইল, যা বর্তমান পাইপলাইন বস্তু (যেমন। $_ )। এটা কেবল যোগ করে DSC_ একটি উপসর্গ হিসাবে এবং .jpg এক্সটেনশান হিসাবে।
  • পান-সামগ্রী এর বিষয়বস্তু পড়া Technical.txt ফাইল।
  • Foreach-বস্তুর তার স্ক্রিপ্ট ব্লক আর্গুমেন্টগুলি কার্যকর করে (কোঁকড়া ধনুর্বন্ধনী সহ, যেমন। {} ) পাইপলাইনে প্রতিটি বস্তুর জন্য, এই ক্ষেত্রে, প্রতিটি পাঠ্য লাইন দ্বারা ফেরত দেওয়া হয় Get-Content

এই সমাধান পরীক্ষা করা (অনলাইন বা স্থানীয়ভাবে)

সবচেয়ে সহজ চেষ্টা করা হয় এই সমাধান অনলাইন

অন্যথা, নিম্নলিখিত স্নিপেট তৈরি করতে ব্যবহার করা যেতে পারে বর্তমান ডিরেক্টরি একটি test ফোল্ডার একটি উদাহরণ ধারণকারী Technical.txt ফাইল এবং জাল ছবি ফাইল খালি বরাবর এই উত্তর উল্লিখিত প্যাটার্ন অনুসরণ Technical ডিরেক্টরি ( সাবধান হও : আপনি পরিবর্তন করতে হবে .\test যদি আপনি ইতিমধ্যে একটি আছে অন্য কিছু test কাজের ডিরেক্টরি ফোল্ডার:

mkdir -ErrorAction SilentlyContinue .\test\Technical
Out-File .\test\DSC_4811.jpg; Out-File .\test\DSC_4812.jpg; Out-File .\test\DSC_4813.jpg;
Out-File .\test\DSC_4814.jpg; Out-File .\test\DSC_4819.jpg; Out-File .\test\DSC_4820.jpg;
"4811`n4819`n4820" > .\test\Technical.txt

(তৃতীয় লাইন, `n লাইন অক্ষর একটি শেষ প্রতিনিধিত্ব করে (ব্যাক-টিক ( ` ) একটি পালা অক্ষর PowerShell মধ্যে)।

এটি নিম্নলিখিত ফাইল তৈরি করে:

.\test\DSC_4811.jpg    .\test\DSC_4812.jpg    .\test\DSC_4813.jpg
.\test\DSC_4814.jpg    .\test\DSC_4819.jpg    .\test\DSC_4820.jpg
.\test\Technical.txt

উত্তর হিসাবে দেওয়া কমান্ডটি কার্যকর করা হয় (পরে) Get-Content .\test\Technical.txt | ForEach-Object { Copy-Item ".\test\DSC_$_.jpg" .\test\Technical } ), ফাইলগুলি হল:

.\test\DSC_4811.jpg              .\test\DSC_4812.jpg              .\test\DSC_4813.jpg
.\test\DSC_4814.jpg              .\test\DSC_4819.jpg              .\test\DSC_4820.jpg
.\test\Technical.txt
.\test\Technical\DSC_4811.jpg    .\test\Technical\DSC_4819.jpg    .\test\Technical\DSC_4820.jpg

পরিস্কার কর:

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