Некоторое время не занимался программированием, но теперь обнаружил, что мне нужно автоматизировать некоторые вещи. По сути, я хотел бы, чтобы пакетный файл выполнял поиск в локальном каталоге для файла с именем «(U) Password.txt», который состоит из 4 строк строки. Я хочу, чтобы он выполнял поиск, используя слово "findstr", слово "TEXT", и сохранял переход на следующую строку, фиксируя эту строку в переменной для использования в качестве пароля дешифрования. Оставшийся код был протестирован и работает нормально, но есть много возможностей для улучшения. Могу ли я использовать «Skip = 1» для захвата строки под рынком "Текст" с помощью findstr для захвата следующей строки?
::Образец кода
@ECHO OFF
REM version 0.4
:: Get the Current Directory ::
SET FolderName=%cd%
:: Make the new Encrypted and Unencrypted Folders
echo D| md %FolderName%\'Encrypted_Databases'
echo D| md %FolderName%\'Unencrypted_Databases'
echo D| md %FolderName%\'Difference_Reports'
set findtext="TEXT"
set findfile="(U) Password.txt"
findstr %findtext% %findfile%
for /f "delims=" %%a in ('findstr %findtext% %findfile%') do echo %%a
:: Decrypt the Databases ::
SET /p DB_PASSWORD= %%a
IF ["%DB_PASSWORD%"]==[""] ECHO Password not set. & GOTO EXIT
SET "DB_FILES=db1.db db2.db db3.db db4.db db5.db db6.db db7.db db8.db db9.db"
ECHO Decrypting...
SET /a DB_TOTAL_COUNT=0
for %%a in (%DB_FILES%) do (
decryptionSoftware.exe -key "%DB_PASSWORD%" %%a "PRAGMA rekey='';"
SET /a DB_TOTAL_COUNT+=1
)
ECHO Done!
ECHO.
ECHO.
ECHO Testing...
SET /a DB_COUNT=0
3>nul 2>nul (
for %%b in (%DB_FILES%) do (
for /f "tokens=*" %%I in ('decryptionSoftware.exe %%b "SELECT COUNT(*) FROM SQLITE_MASTER;"') do (
REM The following line will not execute if the SQLite command above fails
SET /a DB_COUNT+=1
)
)
)
IF %DB_COUNT%==%DB_TOTAL_COUNT% ECHO Success decrypting!
IF %DB_COUNT% LSS %DB_TOTAL_COUNT% ECHO Problem decrypting!
::EXIT ::
ECHO.
ECHO.
: Move Unencrypted Databases from the Root Directory to the newly Created Unencrypted File Structure ::
echo F| XCOPY "%folderName%\DatabaseTesting\Unencrypted_Databases\*.db"/Y
PAUSE
exit