作者 主題: Windows Shell 刪除七天前資料  (閱讀 7525 次)

0 會員 與 1 訪客 正在閱讀本文。

smarties

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
Windows Shell 刪除七天前資料
« 於: 2009-12-21 22:43 »
請問如何檢查某特定目錄下的所有檔案, 如果超過七天則刪除??
因為要在windows server上執行,希望可以用一個bat 檔執行~~

謝謝各位大大幫忙... :D

damon

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 4227
    • 檢視個人資料
    • http://blog.damon.tw/
回覆: Windows Shell 刪除七天前資料
« 回覆 #1 於: 2009-12-22 09:38 »
google找windows script center,也許有寫好的範例可以改

jaymsa

  • 活潑的大學生
  • ***
  • 文章數: 409
  • 性別: 男
    • 檢視個人資料
    • Jay's Blog
回覆: Windows Shell 刪除七天前資料
« 回覆 #2 於: 2009-12-22 11:06 »
應該要使用pwoer shell吧?一般的我試過好像無法.
或用用linux的工具...
Linux真好玩...博大精深!!
RHCE,ISO27001,ISO20000
http://jayclub.no-ip.org/jayblog

aeolus0829

  • 憂鬱的高中生
  • ***
  • 文章數: 112
    • 檢視個人資料
回覆: Windows Shell 刪除七天前資料
« 回覆 #3 於: 2009-12-22 13:35 »
我是裝 cygwin ,然後寫批次檔去呼叫 unix find -mtime +7 -exec rm -f {} \;

:P

也算是一種解法吧

jaymsa

  • 活潑的大學生
  • ***
  • 文章數: 409
  • 性別: 男
    • 檢視個人資料
    • Jay's Blog
回覆: Windows Shell 刪除七天前資料
« 回覆 #4 於: 2009-12-22 14:57 »
UnxUtils用這個也很方便...
不過我總覺得我的排程有點怪怪的XD
Linux真好玩...博大精深!!
RHCE,ISO27001,ISO20000
http://jayclub.no-ip.org/jayblog

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
回覆: Windows Shell 刪除七天前資料
« 回覆 #5 於: 2009-12-22 16:22 »
可以參考這篇,有個工具可以試試看:
http://phorum.study-area.org/index.php/topic,36595.0.html

執行檔:http://demonbane.org/files/PurgeFiles_bin.zip
原始碼:http://demonbane.org/files/PurgeFiles_src.zip

後來有稍微加強一下
代碼: [選擇]
使用方法: PugeFiles.exe <要處理的目錄> <秒數> <Mask> <處理動作> <不處理子目錄>
<處理動作> 可以是一個備份目錄路徑,-ro (設唯讀) 或 -d (刪除)
<不處理子目錄> 為 -r 的話則不處理子目錄
eg. PugeFiles.exe c:\myfiles 604800 *.* c:\filebackup"


smarties

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
回覆: Windows Shell 刪除七天前資料
« 回覆 #6 於: 2009-12-22 23:05 »
我不想用軟體...只想用wiNDOWS pOWER SHELL 來執行
想請問各位有沒有人寫過??

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
回覆: Windows Shell 刪除七天前資料
« 回覆 #7 於: 2009-12-23 04:07 »
我不想用軟體...只想用wiNDOWS pOWER SHELL 來執行
想請問各位有沒有人寫過??

看過幾次但沒寫過,大概找了一下資料,湊出來一行搞定:


Get-ChildItem -Recurse -force C:\files | Where-Object {!($_.Mode -match "d") -and ((Get-Date).Subtract($_.LastWriteTime).TotalDays -gt 7) } | Remove-Item -Force


兩個綠色的地方分別改成要處理的目錄及天數(最後修改時間)

yc123

  • 懷疑的國中生
  • **
  • 文章數: 84
    • 檢視個人資料
回覆: Windows Shell 刪除七天前資料
« 回覆 #8 於: 2010-01-12 11:13 »
# Alias ls  Get-ChildItem
# Alias rm  Remove-Item
$now = get-date;
$path1 = '\\computer\folder';
ls $path1 | where-object {($now - $_.CreationTime).Days -ge 7} | rm -Recurse -Verbose

jeffher.tw

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: Windows Shell 刪除七天前資料
« 回覆 #9 於: 2010-01-12 11:33 »
我記得 robocopy.exe 好像可以,之前有用過,你可以試看看!
 :)