[英]CMD escape spaces and exclude names containing specific string
代碼是這樣的,但它現在不能按預期工作:
@ECHO OFF
for /f %%i in ('dir *.mov /b') do call :test %%i
goto continue
:test
if "%1"=="*compressed.mov" goto :eof
echo "%~f1"
goto :eof
:continue
pause
我想在這里解決兩個問題:
如何轉義文件名中的空格? IE。 我想在測試中包含“video 1.mov”文件,而不是只回顯“Drive:\path\video”,而是“Drive:\path\video 1.mov”
如何不回顯名稱末尾包含字符串“壓縮”的任何文件?
也許像這樣的東西適合:
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
For %%G In ("*.mov") Do If /I "%%~xG" == ".mov" (Set "_=%%~nG"
SetLocal EnableDelayedExpansion
If /I Not "!_:~-10!" == "compressed" (EndLocal & Echo "%%~fG"
) Else EndLocal
)
Pause
或者使用findstr.exe
:
@For /F "EOL=? Delims=" %%G In ('Dir "*.mov" /A:-D /B 2^>NUL ^| %SystemRoot%\System32\findstr.exe /LIE ".mov" ^| %SystemRoot%\System32\findstr.exe /VLIE "compressed.mov"') Do @Echo "%__CD__%%%G"
@Pause
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.