iT邦幫忙

2

想用一個批次檔程式完成 自動特定日期資料夾命名

  • 分享至 

  • xImage

謝謝您

我換個說法好了

假如我有五台相機

第一堂課開機

學生拍照 產生照片 照片會自動產生在一個資料夾

(因為那個拍照程式的關係)

名稱為 D:\照片資料夾\20190903\1 (裡面假如說有5台相機)

1資料夾此時裡面有五張照片

但如果在一堂課之中關機了數次 或 整個重開了數次

下次拍照還是會再\1資料夾 再新增五張照片 ( 此時總共為10張)

導致不好分辨照片 及 抓照片 因為(拍的人物不同)

有辦法把

D:\照片資料夾\20190903

改成

D:\照片資料夾\20190903~1嗎

使用批次檔

這樣的話 我每次拍完五張 下次開機前

自動把之前拍的五張照片的資料夾改為

20190903~1

我再次拍照新的

新的資料夾會變成20190903 這樣就不衝突了

如果用指定的日期 寫 批次檔 會有日期兜不上問題

有辦法用 CMD DATE RENAME寫嗎

謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

3
dragonH
iT邦超人 5 級 ‧ 2019-09-03 16:57:43
最佳解答

看不太懂你的意思

不過我這 code 的目的是

假設每堂課只開機一次

每次開機就會產生新的資料夾

e.g.

第一堂課開機

就會產生該日日期-堂數

也就是 20190903-1

以此類推

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%%ldt:~4,2%%ldt:~6,2%

for /l %%i in (1 1 20) do (
  if not exist %ldt%-%%i (
    mkdir %ldt%-%%i
    echo %ldt%-%%i created
    goto :break
  )
)
:break

img

看更多先前的回應...收起先前的回應...
zx536642 iT邦新手 5 級 ‧ 2019-09-03 17:30:01 檢舉

謝謝您

我換個說法好了

假如我有五台相機

第一堂課開機

學生拍照 產生照片 照片會自動產生在一個資料夾

(因為那個拍照程式的關係)

名稱為 D:\照片資料夾\20190903\1 (裡面假如說有5台相機)

1資料夾此時裡面有五張照片

但如果在一堂課之中關機了數次 或 整個重開了數次

下次拍照還是會再\1資料夾 再新增五張照片 ( 此時總共為10張)

導致不好分辨照片 及 抓照片 因為(拍的人物不同)

有辦法把

D:\照片資料夾\20190903

改成

D:\照片資料夾\20190903~1嗎

使用批次檔

這樣的話 我每次拍完五張 下次開機前

自動把之前拍的五張照片的資料夾改為

20190903~1

我再次拍照新的

新的資料夾會變成20190903 這樣就不衝突了

如果用指定的日期 寫 批次檔 會有日期兜不上問題

有辦法用 CMD DATE RENAME寫嗎

謝謝

dragonH iT邦超人 5 級 ‧ 2019-09-03 17:41:52 檢舉
@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%%ldt:~4,2%%ldt:~6,2%

if exist %ldt% (
  for /l %%i in (1 1 20) do (
    if not exist %ldt%~%%i (
      ren %ldt% %ldt%~%%i
      mkdir %ldt%
      goto :break
    )
  )
)
:break

每次開機檢查 190903 folder 是否存在

存在的話

將其改名 190903~X

並創建一個空的 190903

這樣是你要的嗎

zx536642 iT邦新手 5 級 ‧ 2019-09-03 17:55:09 檢舉

每次開機檢查 190903(系統日期) folder 是否存在

存在的話

將其改名 190903(系統日期)~X

請問這樣會有日期上的問題嗎

請問

如果明天 20190904一樣會變成

每次開機檢查 190904(系統日期) folder 是否存在

存在的話

將其改名 20190904(系統日期)~X

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

您好 D大您好 

我的想法是  每次開機 自動檢查 D:\照片資料夾\20190903(系統日期)

有的話 改成 20190903~1

沒有的話 則不動作


zx536642 iT邦新手 5 級 ‧ 2019-09-03 18:08:44 檢舉

已回覆給D大您 謝謝

zx536642 iT邦新手 5 級 ‧ 2019-09-03 18:39:45 檢舉

已經解決 謝謝

dragonH iT邦超人 5 級 ‧ 2019-09-03 19:01:05 檢舉

對阿 我上面只是用190903來舉例

實際上是抓當天日期

請問 drahonH 大,您 demo 時使用的是什麼軟體?

dragonH iT邦超人 5 級 ‧ 2019-09-04 11:05:35 檢舉

mustsurfing

編輯器是 vscode

錄製 gif 是 screenToGif

由於 it邦 不能上傳 gif

所以必須先丟到 imgur

再把連結貼過來

zx536642 iT邦新手 5 級 ‧ 2019-09-16 10:57:41 檢舉

D大您好 還想請問

CD D:\CaptureGRID 4

D:

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (wmic os get LocalDateTime /VALUE 2^>NUL) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%%ldt:~4,2%%ldt:~6,2%

if exist %ldt% (
for /l %%i in (1 1 20) do (
if not exist %ldt%~%%i (
ren %ldt% %ldt%~%%i
mkdir %ldt%
goto :break
)
)
)
:break

當我在 D:\CaptureGRID 4 \ 20190916 的時候
是可以執行這個命令的

但 到 D:\CaptureGRID 4 \ 20190916 \ 1 \ 裡面有任何一張照片時就執行不了

資料夾此時回到上一層 D:\CaptureGRID 4 \ 20190916

(此時開啟資料夾)

就可執行

此時開兩個視窗 改資料夾名稱是可以的 顯示不會被占用

是bat指令被擋住了嗎

已經把Windows Media Player Network Sharing Service

停用

謝謝

dragonH iT邦超人 5 級 ‧ 2019-09-16 11:22:14 檢舉

不太懂你的意思

有沒有錯誤訊息的截圖

img

是像我這樣的操作嗎

zx536642 iT邦新手 5 級 ‧ 2019-09-16 11:50:33 檢舉

已經解決了 原來是資料夾不能有中文...

謝謝

zx536642 iT邦新手 5 級 ‧ 2019-09-16 17:26:35 檢舉

不好意思 不是資料夾中文的問題

想請問一下

https://ithelp.ithome.com.tw/upload/images/20190916/20120594a5nbr4do5o.png

當視窗處於這層時 BAT命令就無法成功

https://ithelp.ithome.com.tw/upload/images/20190916/20120594NSghifPtrV.png

這層確可以執行

是被占用住了嗎

dragonH iT邦超人 5 級 ‧ 2019-09-16 18:37:33 檢舉

zx536642

你在 code 最後一行

補上 pause

看錯誤訊息說什麼

zx536642 iT邦新手 5 級 ‧ 2019-09-17 09:34:33 檢舉

https://ithelp.ithome.com.tw/upload/images/20190917/20120594JxIPLcBCVG.jpg

存取被拒

子目錄或檔案20190917已經存在

dragonH iT邦超人 5 級 ‧ 2019-09-17 09:38:21 檢舉

權限問題就右鍵管理者執行看看

zx536642 iT邦新手 5 級 ‧ 2019-09-17 12:08:45 檢舉

還是一樣存取被拒 已經使用WIN 10 完全控制了 SYSTEM

我要發表回答

立即登入回答