我在分配一个命令来计算变量时遇到麻烦,该命令计算目录中文件出现的次数。
我发现我应该执行此操作-(^ |)
,但是当我执行该操作并回显该变量时,将不显示任何内容,并且应该多次出现。
我的代码:
@echo off
setlocal enableextensions
for /f "tokens=*" %%i in ('dir /b C:\Users\AD10FC\IdeaProjects\collateral\db-resources\release | findstr /B "!first%!-" | find /c /v ""') do set VAR=%%i
echo %VAR%
答案 0 :(得分:0)
您无需在代码中使用findstr.exe
来过滤前导字符串,因为您可以直接在Dir
中进行过滤:
@Echo Off
SetLocal EnableExtensions
Set "first=LeadingString"
For /F "EOL=? Delims=" %%G In ('"Dir /B /A:-D "%UserProfile%\IdeaProjects\collateral\db-resources\release\%first%-*" | "%SystemRoot%\System32\find.exe" /V /C """') Do Set "VAR=%%G"
Echo(%VAR%
Pause
对于您正在执行的特定任务,您可能还会发现以下更适合您的情况:
@Echo Off
SetLocal EnableExtensions
Set "first=LeadingString"
For /F %%G In ('""%SystemRoot%\System32\xcopy.exe" "%UserProfile%\IdeaProjects\collateral\db-resources\release\%first%-*" . /LQH"') Do Set "VAR=%%G"
Echo(%VAR%
Pause