未发行批次

未发行批次

希望有人能帮助我,我在子文件夹中运行以下脚本来查找某个字符串。然后将文本名称导出到名为 Completed.txt 的新文本文档中。但是,我试图获取一个名为 Incomplete.txt 的文本文档,其中没有字符串。如果我可以使用

for /f %%i in not

但那并不存在。

这是我目前所得到的。

@echo off
for /f %%i in ('findstr /i "Script" *.txt') do @echo %%i >> Completed.txt

我尝试了以下操作但失败了。

for /f %%i in ('findstr /i "Script" *.txt') do If %errorlevel%=5 @echo %%i >> Error.txt

答案1

PowerShell 是另一种方法。它将循环遍历 $Directory,如果您希望它更深入并仅查看以 .txt 作为扩展名的文件,请添加 -recurse。

$Directory = "C:\Scripts\*"
$Completed = "C:\Tools\Completed.txt"
$Incomplete = "C:\Tools\Incomplete.txt"

$Files = Get-Childitem -Path $Directory -Include *.txt

Foreach ($File in $Files) {
    $FileContents = Get-Content $File
    if ($FileContents -contains 'Script') {
        Add-Content -Path $Completed -Value $File.Name
    } else {
        Add-Content -Path $Incomplete -Value $File.Name
    }

}

答案2

查找不完整文件

@echo 2>incomplete.txt
@for %%i in (*.txt) do @findstr /i "Script" %%~i > nul || echo %%i >> incomplete.txt

答案3

这批产品可以起到这样的作用:

@echo off
set "Complete=Complete.txt"
Set "Incomplete=Incomplete.txt"
If exist "%Complete%" Del "%Complete%"
If exist "%Incomplete%" Del "%Incomplete%"
@for %%i in (*.txt) do (
    @findstr /i "Script" %%~i >nul && echo %%i --^> %%~fi >> "%Complete%" || echo %%i --^> %%~fi >> "%Incomplete%"
)
pause

相关内容