酷!學園
2010-09-03 13:15 *
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?

請輸入帳號, 密碼以及預計登入時間
新聞:
 
   首頁 | Study-Area | 鳥園 | 鳥哥的Linux私房菜   說明 搜尋 日曆 登入 註冊  
頁: [1]
  列印  
作者 主題: Windows Shell 刪除七天前資料  (閱讀 2127 次)
0 會員 以及 1 訪客 正在閱讀本篇主題.
smarties
可愛的小學生
*
文章: 2


檢視個人資料
« 於: 2009-12-21 22:43 »

請問如何檢查某特定目錄下的所有檔案, 如果超過七天則刪除??
因為要在windows server上執行,希望可以用一個bat 檔執行~~

謝謝各位大大幫忙... ㄏㄏㄏ
已記錄
damon
酷!學園 學長們
俺是博士!
*****
文章: 4012


檢視個人資料 個人網站
« 回覆文章 #1 於: 2009-12-22 09:38 »

google找windows script center,也許有寫好的範例可以改
已記錄
jaymsa
活潑的大學生
***
會員性別: 男
文章: 402


檢視個人資料 個人網站
« 回覆文章 #2 於: 2009-12-22 11:06 »

應該要使用pwoer shell吧?一般的我試過好像無法.
或用用linux的工具...
已記錄

Linux真好玩...博大精深!!
RHCE
http://jayclub.no-ip.org/jayblog
aeolus0829
懷疑的國中生
**
文章: 89


檢視個人資料
« 回覆文章 #3 於: 2009-12-22 13:35 »

我是裝 cygwin ,然後寫批次檔去呼叫 unix find -mtime +7 -exec rm -f {} \;

伸舌頭

也算是一種解法吧
已記錄
jaymsa
活潑的大學生
***
會員性別: 男
文章: 402


檢視個人資料 個人網站
« 回覆文章 #4 於: 2009-12-22 14:57 »

UnxUtils用這個也很方便...
不過我總覺得我的排程有點怪怪的XD
已記錄

Linux真好玩...博大精深!!
RHCE
http://jayclub.no-ip.org/jayblog
洋蔥叔叔
榮譽博士
鑽研的研究生
*****
文章: 804



檢視個人資料 個人網站
« 回覆文章 #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


檢視個人資料
« 回覆文章 #6 於: 2009-12-22 23:05 »

我不想用軟體...只想用wiNDOWS pOWER SHELL 來執行
想請問各位有沒有人寫過??
已記錄
洋蔥叔叔
榮譽博士
鑽研的研究生
*****
文章: 804



檢視個人資料 個人網站
« 回覆文章 #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
懷疑的國中生
**
文章: 51


檢視個人資料
« 回覆文章 #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
懷疑的國中生
**
文章: 40


檢視個人資料
« 回覆文章 #9 於: 2010-01-12 11:33 »

我記得 robocopy.exe 好像可以,之前有用過,你可以試看看!
 微笑
已記錄
頁: [1]
  列印  
 
前往:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
本頁花了 0.049 秒,以及 16 次的資料庫查詢。