- @echo off
- setlocal enableDelayedExpansion
- for /f "tokens=1*" %%i in ('dir ^| findstr /i "好的"') do (
- if "%%i"=="200" set str=%%j
- del !str!
- )
复制代码 原代码部分如上。现在想将for部分重定向到新文本中,如下:- @echo off
- setlocal enableDelayedExpansion
- echo for /f "tokens=1*" %%i in ('dir ^| findstr /i "好的"') do ( >33.txt
- echo if "%%i"=="200" set str=%%j >>33.txt
- echo del !str! >>33.txt
- echo ) >>33.txt
复制代码 这个代码肯定不正确。修改了一下如下:- @echo off
- setlocal enableDelayedExpansion
- echo for /f "tokens=1*" %%%%i in ('dir ^^^| findstr /i "好的"') do ( >33.txt
- echo if "%%%%i"=="200" set str=%%%%j >>33.txt
- echo del !str! >>33.txt
- echo ^) >>33.txt
复制代码 但是因为开启了变量延迟,!str!不会被重定向到33.txt中
应该如何解决呢?或者说代码中还有哪里是错的。 |