@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