感謝大大提供。可能我沒說明清楚
我的檔案是亂數命名(非時間),想要依檔案建立的日期,產生這日期的資料夾,再把這日期的檔案全部存放進去
釣竿已經給你了,要吃魚還是得您自已去釣~~
我也給點提示..
開個命令提示字元,cd到你放檔案的資料夾下,輸入 dir /b 看看輸出是什麼?
再輸入 dir,看看輸出又是什麼?最前面是不是出現日期了?但請注意看那是修改日期
輸入 dir /? 看看 /T 這個參數
再來就是照happy2002172大提供的連結,修改這個批次檔就能解決您的問題了~
感謝大大幫忙,我用happy2002172大的方式先模擬跑出來是這樣
md出來的資料夾怪怪的
後來我找一些分享,兜成這樣,還請大大賜教
D:\test>FOR /F %i in ('dir /b *.jpg') do {(FOR /F "tokens=1-3 delims=/ " %a IN ('dir /t *.jpg') DO (SET FileDate=%a%b%c & SET File=%i & md !name:~0,8! & move "%i"))}
D:\test>{(FOR /F "tokens=1-3 delims=/ " %a IN ('dir /t *.jpg') DO (SET FileDate=%a%b%c & SET File=CCTV1234_20170518123456_00.jpg & md !name:~0,8! & move "CCTV1234_20170518123456_00.jpg"))}
'{' 不是內部或外部命令、可執行的程式或批次檔。
目錄名稱無效。
處理時發生錯誤: !name:~0。
子目錄或檔案 8! 已經存在。
處理時發生錯誤: 8!。
系統找不到指定的檔案。
D:\test>{(FOR /F "tokens=1-3 delims=/ " %a IN ('dir /t *.jpg') DO (SET FileDate=%a%b%c & SET File=CCTV1234_20170519123456_00.jpg & md !name:~0,8! & move "CCTV1234_20170519123456_00.jpg"))}
'{' 不是內部或外部命令、可執行的程式或批次檔。
目錄名稱無效。
處理時發生錯誤: !name:~0。
子目錄或檔案 8! 已經存在。
處理時發生錯誤: 8!。
系統找不到指定的檔案。
我再修改一下指令,檔案日期的資料夾有建立出來,但裡面是空的,反而多出一些資料夾,兩個jpg圖檔也不在正確的資料夾內,還請大大賜教
D:\test>FOR /F %i in ('dir /b *.jpg') do (FOR /F "tokens=1-3 delims=/ " %a IN ('dir /t *.jpg') DO (SET FileDate=%a%b%c & SET File=%i & md "%a%b%c" & move "%i" "%a%b%c" ) )
D:\test>(FOR /F "tokens=1-3 delims=/ " %a IN ('dir /t *.jpg') DO (SET FileDate=%a%b%c & SET File=2012-02-12-12.23.37.jpg & md "%a%b%c" & move "2012-02-12-12.23.37.jpg" "%a%b%c" ) )
D:\test>(SET FileDate=磁碟區D中的磁碟是 & SET File=2012-02-12-12.23.37.jpg & md "磁碟區D中的磁碟是" & move "2012-02-12-12.23.37.jpg" "磁碟區D中的磁碟是" )
移動 1 個檔案。
D:\test>(SET FileDate=磁碟區序號:82CB-D62E & SET File=2012-02-12-12.23.37.jpg & md "磁碟區序號:82CB-D62E" & move "2012-02-12-12.23.37.jpg" "磁碟區序號:82CB-D62E" )
目錄名稱無效。
系統找不到指定的檔案。
D:\test>(SET FileDate=D:\test的目錄 & SET File=2012-02-12-12.23.37.jpg & md "D:\test的目錄" & move "2012-02-12-12.23.37.jpg" "D:\test的目錄" )
子目錄或檔案 D:\test的目錄 已經存在。
系統找不到指定的檔案。
D:\test>(SET FileDate=20150329 & SET File=2012-02-12-12.23.37.jpg & md "20150329" & move "2012-02-12-12.23.37.jpg" "20150329" )
系統找不到指定的檔案。
D:\test>(SET FileDate=20200115 & SET File=2012-02-12-12.23.37.jpg & md "20200115" & move "2012-02-12-12.23.37.jpg" "20200115" )
系統找不到指定的檔案。
D:\test>(SET FileDate=2個檔案2,076,224 & SET File=2012-02-12-12.23.37.jpg & md "2個檔案2,076,224" & move "2012-02-12-12.23.37.jpg" "2個檔案2,076,224" )
系統找不到指定的檔案。
D:\test>(SET FileDate=0個目錄373,796,753,408 & SET File=2012-02-12-12.23.37.jpg & md "0個目錄373,796,753,408" & move "2012-02-12-12.23.37.jpg" "0個目錄373,796,753,408" )
系統找不到指定的檔案。
D:\test>(FOR /F "tokens=1-3 delims=/ " %a IN ('dir /t *.jpg') DO (SET FileDate=%a%b%c & SET File=2012035897.jpg & md "%a%b%c" & move "2012035897.jpg" "%a%b%c" ) )
D:\test>(SET FileDate=磁碟區D中的磁碟是 & SET File=2012035897.jpg & md "磁碟區D中的磁碟是" & move "2012035897.jpg" "磁碟區D中的磁碟是" )
子目錄或檔案 磁碟區D中的磁碟是 已經存在。
移動 1 個檔案。
D:\test>(SET FileDate=磁碟區序號:82CB-D62E & SET File=2012035897.jpg & md "磁碟區序號:82CB-D62E" & move "2012035897.jpg" "磁碟區序號:82CB-D62E" )
目錄名稱無效。
系統找不到指定的檔案。
D:\test>(SET FileDate=D:\test的目錄 & SET File=2012035897.jpg & md "D:\test的目錄" & move "2012035897.jpg" "D:\test的目錄" )
子目錄或檔案 D:\test的目錄 已經存在。
系統找不到指定的檔案。
D:\test>(SET FileDate=20200115 & SET File=2012035897.jpg & md "20200115" & move "2012035897.jpg" "20200115" )
子目錄或檔案 20200115 已經存在。
系統找不到指定的檔案。
D:\test>(SET FileDate=1個檔案1,511,670 & SET File=2012035897.jpg & md "1個檔案1,511,670" & move "2012035897.jpg" "1個檔案1,511,670" )
系統找不到指定的檔案。
D:\test>(SET FileDate=0個目錄373,796,753,408 & SET File=2012035897.jpg & md "0個目錄373,796,753,408" & move "2012035897.jpg" "0個目錄373,796,753,408" )
子目錄或檔案 0個目錄373,796,753,408 已經存在。
系統找不到指定的檔案。
我再修正了一下指令,圖檔都已經依檔案的日期存入檔案日期的資料夾內,但系統的訊息會自動建立資料夾(如下圖黑框內),是否有指令在跑bat時不會產生這些資料夾嗎?(因為我有3萬多個圖檔,也就是會多建3萬多個系統訊息的資料夾)
已解決