簡體   English   中英

CMD 轉義空格並排除包含特定字符串的名稱

[英]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

我想在這里解決兩個問題:

  1. 如何轉義文件名中的空格? IE。 我想在測試中包含“video 1.mov”文件,而不是只回顯“Drive:\path\video”,而是“Drive:\path\video 1.mov”

  2. 如何不回顯名稱末尾包含字符串“壓縮”的任何文件?

也許像這樣的東西適合:

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM