我不是開發人員,我只是在尋找獲取代碼。
我的檔案夾:
default-0.png
[email protected]
default-1.png
[email protected]
default-2.png
[email protected]
default-3.png
[email protected]
default-4.png
[email protected]
default-5.png
[email protected]
default-6.png
[email protected]
default-7.png
[email protected]
default-8.png
[email protected]
default-9.png
[email protected]
...
我只想將檔案名為“ @2... ”的檔案以及任何檔案擴展名移動到“新檔案夾”。
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
...
我嘗試使用正則運算式:(^. @2. .$)
請參閱檢查regex101以獲取完整匹配文本。
我嘗試了我的代碼但不起作用:
@echo off
setlocal enabledelayedexpansion
for /f %%f in ('dir /b | findstr /r "(^. @2. .$)") do (
md "new folder"
move "%%~f" "moved folder"
)
Echo done
pause
任何人幫助我,我錯了什么?
更新:感謝@develc(已回答)和@Mofi(已編輯)這有效,我的檔案數量完美匹配正則運算式。
md "new folder"
move "*@2x*" "new folder"
另一種方法:這有效,但 0.1% 無法移動,因為無法檢測到檔案名有類似example@2x - if comment.png
. 感謝@Hackoo 的回答
@echo off
MD "new folder">nul 2>&1
setlocal enabledelayedexpansion
for /f %%f in ('dir /b *@2*') do (
move "%%~f" "new folder"
)
Echo done
pause
uj5u.com熱心網友回復:
可以使用這樣的東西:
md "new folder"
move "*@2x*" "new folder"
在批處理檔案中,*a
表示以;結尾的所有內容 表示以b開頭的所有內容;表示以a開頭并以b結尾的所有內容;表示以a開頭、在a和b之間有一個字符并以b結尾的所有內容。通配符也適用于所有內容,并且通配符適用于每個字符。b*
a*b
a?b
*
?
請參閱:Microsoft 檔案站點上的MS-DOS 和 Windows 通配符 。
uj5u.com熱心網友回復:
你可以嘗試這樣的事情:
@echo off
MD "new folder">nul 2>&1
setlocal enabledelayedexpansion
for /f %%f in ('dir /b *@2*') do (
move "%%~f" "new folder"
)
Echo done
pause
uj5u.com熱心網友回復:
通常您的正則運算式語法似乎是正確的。但是當您檢查“findstr”檔案時,加號 ( ) 字符不在接受串列中:)
Findstr 檔案:https ://docs.microsoft.com/en-us/windows-server/administration/windows-commands/findstr
你可以試試這個:
@echo off
setlocal enabledelayedexpansion
MD "new folder">nul 2>&1
for /f %%f in ('dir /b ^ | findstr /r "(^.*@2.*$)"') do (
move "%%~f" "new folder"
)
Echo done
pause
uj5u.com熱心網友回復:
也可以使用:
%SystemRoot%\System32\robocopy.exe . "new folder" *@2x.* /MOV /NDL /NFL /NJH /NJS >nul
整個目錄樹到指定的目標檔案夾——在這種情況下是當前目錄中的子目錄new folder
——由ROBOCOPY在移動當前目錄中與通配符模式匹配的所有檔案之前不存在時自動創建*@2x.*
。
在命令提示符視窗中運行以robocopy /?
獲取有關此命令的幫助。
也可以看看:
- SS64.com - Windows CMD 命令的 AZ 索引
- Windows 命令的 Microsoft 檔案
- 有關命名檔案、路徑和命名空間的Microsoft 檔案
- 有關使用命令重定向運算子的 Microsoft 檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/469999.html