希望有人能帮助我,我在子文件夹中运行以下脚本来查找某个字符串。然后将文本名称导出到名为 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