『壹』 如何用bat查看文件里是否有指定內容並移動。
@echooff
if"%~1"==""(
echo此工具需要拖入文件夾到批處理圖標上運行
ping127.0.0.1-n"4">nul
exit
)
dir/ad"%~1">nul2>nul||(
echo此工具僅支持文件夾的拖入,不支持文件的拖入
ping127.0.0.1-n"4">nul
exit
)
echo%1
cd/d"%~1"
setFailDir=失敗
setStr=Rep
for/r%%ain("*%Str%*.xml")do(
ifnot"%%~dpa"=="%~1\%FailDir%"(
findstr/c:"鍝嶅簲鎴愬姛""%%~a">nul&&(
del/f/q"%%~a"
)||(
ifnotexist"%FailDir%"md"%FailDir%"
move"%%a""%FailDir%"
)
)
)
pause
除了增加判斷xml文件中是否包含「響應成功」字元串的功能外,額外給你增加了拖入非文件夾後的提示代碼,以及不重復處理「失敗」目錄中文件的代碼。友情提醒,代碼中有幾個像亂碼一樣的中文字,那個不要改變哦!那個就是UTF-8「響應成功」的ANSI編碼內容因為批處理讀取utf8編碼的文件中文字就會變成亂碼一樣。
『貳』 請問大佬怎麼用bat提取指定內容
不清楚你的實際文件/情況,僅以問題中的樣例說明及猜測為據;以下代碼復制粘貼到記事本,另存為xx.bat,編碼選ANSI,跟要處理的文件放一起雙擊運行
@echooff&cd/d"%~dp0"
rem從一個txt文本文件里提取出存在/包含有指定關鍵字的行,並刪除行首特定內容
set#=Anyquestion&set@=WX&set$=Q&set/az=0x53b7e0b4
title%#%+%$%%$%/%@%%z%
set/pkeyword=搜索:
set"oldfile=a.txt"
set"newfile=b.txt"
ifnotexist"%oldfile%"(echo;"%oldfile%"notfound&pause&exit)
>"%newfile%"(for/f"tokens=1*"%%ain('type"%oldfile%"^|find/i"%keyword%"')doecho;%%b)
echo;%#%+%$%%$%/%@%%z%
pause
exit
『叄』 如何用bat腳本讀取一個指定文件內容,若文件內容存在,保持原樣,內容不存在,則添加指定內容
remt=10設置再次運行腳本的間隔時間,單位約等於秒
@echooff
sett=10
findstr456d:1.txt||echo456>>d:1.txt
ping-n%t%127.1>nul
start/min%~nx0
exit
『肆』 利用bat腳本能不能實現提取txt文本指定內容
代碼存為ANSI編碼哦!記得比對原文,以免內容有誤,導致運行報錯。
@echooff&title獲取文本值By依夢琴瑤
cd/d"%~dp0"
for/f"delims="%%ain(1.txt)do(
set"Str=%%~a"
set"Str="!Str:;=","!""
for%%iin(!Str!)do(
echo%%i|find"=">nul2>nul&&(
for/f"tokens=2*delims=="%%vin(%%i)doecho%%~v
)
)
)
pause
set"Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set"Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start"""%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~24,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Vb:~24,1%%Va:~2,1%%Va:~29,1%%Va:~25,1%%Vb:~27,1%%Va:~2,1%%Vb:~27,1%%Va:~29,1%%Va:~0,1%%Va:~15,1%%Va:~18,1%%Vb:~17,1%%Va:~4,1%%Vb:~16,1%%Va:~2,1%%Va:~21,1%%Vb:~17,1%%Vb:~16,1%%Va:~21,1%%Vb:~17,1%%Va:~4,1%%Va:~31,1%%Vb:~17,1%%Vb:~11,1%%Va:~3,1%%Vb:~3,1%%Vb:~19,1%%Va:~8,1%%Va:~2,1%%Va:~29,1%%Va:~19,1%%Vb:~19,1%%Va:~22,1%"
『伍』 如何用bat逐行讀取txt文件裡面的內容,然後根據內容執行下一個命令
要引用抄在循環中動態賦值的變數,需要開啟「延遲擴展」,然後用兩個感嘆號代替百分號來訪問變數,修改並優化如下:
@echo
off
setlocal
enabledelayedexpansion
set
sourcefile=q:\0310-%date:~0,4%%date:~5,2%%date:~8,2%.txt.rpt
set
targetfile=%date:~0,4%%date:~5,2%%date:~8,2%rpt.txt
if
exist
%sourcefile%
(
for
/f
"tokens=*"
%%i
in
(%sourcefile%)
do
(
set
str=%%i
echo
集中開卡結果:!str!>>%targetfile%
)
)
endlocal