我不知道如何解决我的问题,但这就是我要做的事情:
这就是我的所作所为:
>nul|set fileError="No duplicate files found"
更新:为了澄清我想要的内容,如果结果大于1,我的批处理文件应该返回重复文件列表,如果返回列表只有一个那么它应该回显#34;没有找到重复文件& #34;
答案 0 :(得分:0)
根据我的评论,这里有一些例子。
首先使用<RSAKeyValue><Modulus>mlDk9dIwcGJ+sS7kCOiG/xr/1RkM7v7/bUExalwSj7Q/Ul575l4cUGR1ZjC3BtEgmMZjW6xSRTCkgp0WMpdnXGmygV0mQbrAP32NTGoMoWgjTIevBbd+yOMfY8E87bUG0sYUA8+Wk55iEPk3O0Ua5FiLNWIqGTbrF2A5iSp1voc=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
方法和preg_match('/\[\{([^\]\}]+)\}\]/', $varx, $match);
:
ForFiles
将delayed expansion
与For /F "Delims==" %%A In ('"(Set file[) 2>Nul"') Do Set "%%A="
Set "i=0"
SetLocal EnableDelayedExpansion
For /F "Delims=" %%A In (
'ForFiles /P "%filePath%" /S /M "%fileName%" /C "Cmd /C Echo @Path" 2^>Nul'
) Do Set /A i+=1 & Set "file[!i!]=%%~A"
If %i% Equ 0 Echo File %fileName% not found in %filePath% & GoTo End
If %i% Equ 1 Echo No duplicates of %fileName% found in %filePath% & GoTo End
For /L %%A In (1 1 %i%) Do Echo [%%A]!file[%%A]!
:End
Pause
和For /F
一起使用:
Dir
您也可以使用delayed expansion
代替For /F "Delims==" %%A In ('"(Set file[) 2>Nul"') Do Set "%%A="
Set "i=0"
SetLocal EnableDelayedExpansion
For /F "Delims=" %%A In ('Dir /B /S /A-D "%filePath%\%fileName%" 2^>Nul'
) Do Set /A i+=1 & Set "file[!i!]=%%A"
If %i% Equ 0 Echo File %fileName% not found in %filePath% & GoTo End
If %i% Equ 1 Echo No duplicates of %fileName% found in %filePath% & GoTo End
For /L %%A In (1 1 %i%) Do Echo [%%A]!file[%%A]!
:End
Pause
将其行Where
更改为:
Dir
您可以将4
更改行For /F "Delims=" %%A In ('"Where /R "%filePath%" "%fileName%" 2>Nul"'
用于以下两行:
RoboCopy
或者可能4
选项将行Set "RCO=/S /L /XJ /R:0 /FP /NS /NC /NP /NDL /NJH /NJS"
For /F "Tokens=*" %%A In ('RoboCopy "%filePath%" Null "%fileName%" %RCO%'
更改为:
For /R
4
版本有点奇怪,因为它必须使用通配符,虽然这可能有问题但是如果你怀疑你的文件是否有For /R "%filePath%" %%A In ("%fileName%?"
或者For /R
延期; (它应该匹配)