এক সপ্তাহের চেয়ে পুরানো tmp এবং বেক ফাইলগুলি মুছতে ব্যাচে ফোরফিল ব্যবহার করে


3

এই সিনট্যাক্সটি সঠিকভাবে কাজ করতে আমার সমস্যা হচ্ছে। আমি যা করতে চাই তা হল নির্দিষ্ট ডিরেক্টরি এবং সমস্ত উপ-ডিরেক্টরি থেকে সমস্ত টিএমপি এবং বেক ফাইলগুলি সরিয়ে ফেলা হয় যদি পরিবর্তিত তারিখটি 7 দিনের বেশি হয়।

for %G in (.tmp, .bak) do forfiles -p "C:\test\cad projects" -s -m *%G -d -7 -c "cmd /c del @path"

আমার সিনট্যাক্সটি এই স্ট্যাক ওভারফ্লো প্রশ্ন থেকে সংগ্রহ করা হয়েছিল ।

আমি যদি আমার অনুসন্ধানের মুখোশটিকে কেবলমাত্র একটি পছন্দসই এক্সটেনশান অন্তর্ভুক্ত করতে পরিবর্তন করি তবে আমি সঠিক ফলাফল পাই।

forfiles -p "c:\test\cad projects" -s -m *.bak -d -7 -c "cmd /c del @path"

আমি ব্যাচ ফাইলগুলি দিয়ে খুব বেশি কিছু করি না তাই আমি আশা করি যে কেউ সহায়তা করতে পারে। পড়ার জন্য ধন্যবাদ.

উত্তর:


5

If you're running this from the console, it should work. If you're saving this to a .bat file, then the format for variables is a little different. You have to use two percentage signs to signify a variable. So, your command would then become...

for %%G in (.tmp, .bak) do forfiles -p "C:\test\cad projects" -s -m *%%G -d -7 -c "cmd /c del @path"

Microsoft's KB75634 article explains why this is.

If there are no characters between the two percent signs, one percent sign is stripped off and the other will remain. This is why a FOR command that echos the name of each file with a .COM extension would be

FOR %V IN (*.COM) DO ECHO %V

but if the same command is placed in a batch file, the following is required:

FOR %%V IN (*.COM) DO ECHO %%V

@TWood, I added a snippet from Microsoft.com on why you have to do that.
Drew Chapin

0

Well I didn't read carefully enough on the FOR /R syntax. I was missing a %. My code above would have worked at the command line. From a batch though, it failed because of the missing %.

for %%G in (.tmp, .bak) do forfiles -p "C:\test\cad projects" -s -m
*%%G -d -7 -c "cmd /c del @path"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.