Windows 批处理查找指定文件及修改内容

window批处理

查看文件

@echo off
for /f "tokens=*" %%b in (test.txt) do echo %%b
pause

查找文件

ECHO off
SETlOCAL enabledelayedexpansion

SET FIND_DIR= %cd%

for /R %FIND_DIR% %%f in (index.*.js) do (
    SET FULL_PATH=%%f
    ECHO 完整的路径: !FULL_PATH!

    SET FILE_DIR=%%~dpf
    ECHO 所在的目录: !FILE_DIR!

    SET FILE_NAME=%%~nf
    ECHO 无后缀文件: !FILE_NAME!

    SET FILE_EXT=%%~xf
    ECHO 文件名后缀: !FILE_EXT!

    SET "FILE_NAME_NOT_PATH=%%~nxf"
    ECHO 无路径文件: !FILE_NAME_NOT_PATH!

    SET "FULL_PATH_NOT_EXT=%%~dpnf"
    ECHO 无后缀全名: !FULL_PATH_NOT_EXT!
)
pause

实例

1 查找并复制文件

  • 该例子是查找电脑所有目录是否存在指定目录
  • 然后把判断目录自动复制指定文件
    • 目录如:linggo\share\java\bin\x86
    • 则放置当前目录下的32dll下的文件,否则放64dll的文件
@echo off
setlocal enabledelayedexpansion
set "fileNameStart=linggo"
set "fileNameMiddlen=share"
set "fileNameEnd=bin"
set "fuzzyName=java*"

set "file1=alleyKey.dll"
set "file2=alley_lib.dll"
set "filePath=file\"
echo ...

for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
	if exist %%a:\ (
		pushd %%a:\
			:: %%b--- exist linggo
			for /f "delims=" %%b in ('dir /a /s /b %%a:\*%fileNameStart%' ) do (
	    		::if exist linggo\share\java*
	    		if exist %%b\%fileNameMiddlen%\%fuzzyName% (
					for /f "delims=" %%c in ('dir /a /s /b %%b' ) do (
						::%%c----linggo\share\java*
		    			if exist %%c\%fileNameEnd% (
	    					echo %%c|find "x86">1.txt
	    					::find x86
	    					for /f "delims=" %%i in ('find "x86" 1.txt') do set ab=%%i
		    				::if exist *x86 
	    					if exist !ab! (
	    						echo x86=========%%c
								copy "%~dp0\%filePath%\32dll\%file1%" "%%c\%fileNameEnd%\%file1%" 
								copy "%~dp0\%filePath%\32dll\%file2%" "%%c\%fileNameEnd%\%file2%"
	    					)else (	    	
	    						echo x64=========%%c
								copy "%~dp0\%filePath%\64dll\%file1%" "%%c\%fileNameEnd%\%file1%" 
								copy "%~dp0\%filePath%\64dll\%file2%" "%%c\%fileNameEnd%\%file2%" 
	    					)
	    					:: del 1.txt
	    					del /a /f /q 1.txt
			    		)
			    	)
				)
			)
		popd
	)
)
echo finish
rem pause

2.查找并修改文件内容

  • 查找当前目录下的指定文件并修改其内容
    • 查找index.未知.js文件然后修改字符串
@echo off
Setlocal enabledelayedexpansion

SET FIND_DIR=%cd%/dist
set st=uniConfig.router={mode:"hash",base:"/"}
::把替换字符串赋值给dt,这里举例是st->dt
set dt=uniConfig.router={mode:"hash",base:"./"}
set fn=index.*.js

for /R %FIND_DIR% %%f in (%fn%) do (
    SET FULL_PATH=%%f
    ECHO 完整的路径: !FULL_PATH!
)
    (for /f "tokens=*" %%i in ( !FULL_PATH!) do (
        set s=%%i
        set s=!s:%st%=%dt%!
        echo !s!
        )
    )>temp1126.txt
    move /y temp1126.txt "!FULL_PATH!"

pause
    原文作者:小路人Go
    原文地址: https://blog.csdn.net/jia_gushuai/article/details/104917092
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞