1.

Solve : What worning with my BAT script?

Answer»

i have 2 text file name: doc.txt and STRING.txt

Doc.txt
Code: [Select]hahah1
kikikik2
fefefefe3
anh3
gugugugu4
String.txt
Code: [Select]anh1
anh2
anh3
It was OK when i split my script to two part.

Code: [Select] findstr /xnc:%~1 doc.txt
echo %errorlevel%
and

Code: [Select] for /f %%i in (string.txt) do echo %%i
But when join 2 of them, i met the problem with %errorlevel%. Anybody can explain for me whats wrong in this case?

Code: [Select]@echo off
for /f %%i in (string.txt) do (
findstr /xnc:"%%i" doc.txt
if %errorlevel%==0 echo do nothing
if %errorlevel%==1 echo do something
)
Here is the picture
1. Using Google, study why we use "delayed expansion" in loops

2. Try this

@echo off
setlocal enabledelayedexpansion
for /f %%i in (string.txt) do (
findstr /xnc:"%%i" doc.txt
if !errorlevel!==0 echo do nothing
if !errorlevel!==1 echo do something
)
Thanks, Dias.

More question.
How can i insert a string in the end of a file without entering a new line.

needaddcata.txt
Code: [Select]41006200730065006E0063006500
43007500730074006F006D0065007200
4D00610069006E00740065006E0061006E0063006500
4F007400680065007200
520026004400
54007200610069006E0069006E006700

My code:

Code: [Select]@echo off
setlocal enabledelayedexpansion

for /f "tokens=3 delims= " %%i in ('reg query hkcu\software\microsoft\office\11.0\outlook\categories') do @echo %%i > temp.txt
for /f %%i in (needaddcata.txt) do (
findstr /c:"%%i" temp.txt > nul
if !errorlevel!==1 echo %%i >> temp.txt
)
After my code run, the output file content:

temp.txt
730074006F006D00650072003B004D006100690 06E00740065006E0061006E00630065003B004D 0069007300630065006C006C0061006E0065006 F00750073003B004F0074006800650072003B00 50006500720073006F006E0061006C003B00500 068006F006E0065002000430061006C006C0073 003B005200260044003B0053007400610074007 50073003B005300740072006100740065006700 6900650073003B0053007500700070006C00690 06500720073003B00540069006D006500200026 00200045007800700065006E007300650073003 B0054007200610069006E0069006E0067003B00 5600490050003B00570061006900740069006E0 067003B000000
41006200730065006E0063006500
43007500730074006F006D0065007200

And if the output file was OK, how do i add that content in registry? because its require a hex.
reg add hkcu\software\microsoft\office\11.0\outlook\categories /v MasterList /t REG_BINARY /d " "


My script try to add some categories into MS Outlook "master category list". it just only add the MISSING category
Make sure you BACKUP for registry before doing anything.everyone pleaseeeee....



Discussion

No Comment Found