@echo off
set out=%~dp0\FileName.txt
(for /r %~dp0 %%F in ((*System1*.txt*) | (*System2*.txt*)) do (if %%~zF GEQ 1 echo %%F)) > %out%
exit /b
我正在尝试使用上面的批处理文件来查看批处理文件所在的目录,以查找包含某个字符串的文件,并且大小超过0KB。
我遇到的问题是OR语句。
答案 0 :(得分:0)
如果没有进一步的细节,这是一个使用您的代码作为基础的可能解决方案:
@echo off
set "out=%~dp0\FileName.txt"
(for /r "%~dp0" %%F in (*System*.txt*) do if %%~zF GTR 0 echo %%F)>"%out%"
exit /b
答案 1 :(得分:0)
@echo off
set "out=%~dp0FileName.txt"
(for /r "%~dp0" %%F in (*System1*.txt* *System2*.txt*) do if %%~zF GEQ 1 echo %%F) > %out%
exit /b
for
命令允许in
子句中的多组文件,因此,只需包含它们。
答案 2 :(得分:0)
下面的批处理文件符合您的要求:
@echo off
set out=%~dp0\FileName.txt
rem "am trying with this batch file to look at the directory the batch file is in"
(for /r "%~dp0" %%F in (*System1*.txt* *System2*.txt*) do (
rem "I want all files greater than 0kb to be written out"
if %%~zF GEQ 1 (
rem "Is there a way to just exclude this Filename.txt file?"
if "%%~nxF" neq "Filename.txt" echo %%F
)
)) > "%out%"
exit /b
但是,您必须注意以下几点:
%~dp0
)应该用引号括起来,以防它可能包含空格。System
的其他文件,只需要System1
或System2
,那么(*System*.txt*)
通配符即可。if
命令。Filename.txt
永远不会与给定的*System*.txt*
通配符匹配,因此不需要最后一个if
命令。