将管道命令分配给变量批处理

时间:2020-10-21 11:55:36

标签: batch-file variables

我在分配一个命令来计算变量时遇到麻烦,该命令计算目录中文件出现的次数。 我发现我应该执行此操作-(^ |),但是当我执行该操作并回显该变量时,将不显示任何内容,并且应该多次出现。

我的代码:

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

1 个答案:

答案 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