請問我有一資料夾裡面有兩種副檔名
A.CR2
A.JPG
B.JPG
C.CR2
C.JPG
D.JPG

只要同檔名裡面沒有.CR2 那就把同檔名的JPG刪除
如果同檔名裡面有.CR2 那就把同檔名的JPG保留

請問批次檔能做到嗎
文章關鍵字
wayn12000 wrote:
請問我有一資料夾裡面...(恕刪)


反過來看就是把有與*.cr2相同檔名的*.jpg移到他處,剩下的就是不要的,對吧

假設asdf是你的資料夾,自行轉換成bat吧

R:\asdf\>dir *.cr2 /b > R:\list.txt
R:\asdf\>for /f "tokens=1 delims=." %a in (R:\list.txt) do move %a.jpg R:\tmp
R:\asdf\>del *.* /q
R:\asdf\>move R:\tmp\*.* R:\asdf
R:\asdf\>rd /q /s R:\tmp
R:\asdf\>del R:\list.txt /q

wayn12000 wrote:
請問批次檔能做到嗎

可以.

if/?

IF [NOT] EXIST filename command

EXIST filename 如果指定的檔名存在時,則條件為真。
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4

j62u6 wrote:
反過來看就是把有與*...(恕刪)

請問我在CMD裡面一行一行打
是可以完成

但是存成BAT檔就無法完成
為何會這樣呢?

ECHO ON
dir *.cr2 /b > .\list.txt
md 100EOS5D
for /f "tokens=1 delims=." %a in (list.txt) do move %a.jpg .\100EOS5D
move *.cr2 .\100EOS5D
del *.* /q
move .\100EOS5D\*.cr2 .\



直行時只有下面的畫面
C:\222>ECHO ON

C:\222>dir *.cr2 /b 1>.\list.txt

C:\222>md 100EOS5D
子目錄或檔案 100EOS5D 已經存在。
這個時候不應有 a.jpg。

C:\222>for /f "tokens=1 delims=." a.jpg .\100EOS5D

C:\222>

wayn12000 wrote:
請問我在CMD裡面一...(恕刪)


在BAT檔裡變數要 「%%」 不能只有一個「%」
我以為你知道

j62u6 wrote:
在BAT檔裡變數要 ...(恕刪)

哈哈~搞定了
感謝你的幫忙
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!