我有一个包含许多.txt
个文件的文件夹。我想在所有这些文件中找到字符串"X"
,然后我想将找到的字符串复制到.txt
个文件中。
到目前为止,我已经尝试过:
@echo on
findstr /m "X" "%userprofile%\Desktop\New_Folder\New_Folder\*.txt"
if %errorlevel%==0 do (
for %%c in (*.txt) do (
type %%c >> "%UserProfile%\Desktop\New_Folder\%%~nc.txt"
pause
我不理解输出%%~nc.txt
部分它将更改后的.txt
文件复制到具有相同名称的新文件夹。
我想指出字符"X"
位于.txt
文件的不同位置。
答案 0 :(得分:2)
这个批处理文件可以解决问题(-_°)
所以,试一试: ScanfilesWordSearch_X.bat
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^SignUp/?$ signup.php [NC,L] # Handle requests for "SignUp"
答案 1 :(得分:1)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "mystring=x"
FOR %%a IN ("%sourcedir%\*.txt") DO FINDSTR "%mystring%" "%%a">nul&IF NOT ERRORLEVEL 1 FINDSTR "%mystring%" "%%a">"%destdir%\%%~nxa"
GOTO :EOF
您需要更改sourcedir
和destdir
的设置以适合您的具体情况并正确设置mystring
,并指出您可能需要调整findstr
切换为容纳case,literal和space-in-target-string。
当然,您可以直接将sourcedir
等编码为文字,但这样做意味着只需要在一个地方更改相关字符串。
答案 2 :(得分:0)
您已经离我很近了,但是检查ErrorLevel
findstr
这里没有任何意义,因为这反映了总体结果,即ErrorLevel
设置为0
case 任何文件都包含搜索字符串。
我会使用findstr /M
循环解析for /F
的输出并复制正文中的返回文件:
for /F "eol=| delims=" %%F in ('
findstr /M /I /C:"X" "%USERPROFILE%\Desktop\New_Folder\New_Folder\*.txt"
') do (
copy "%%F" "%USERPROFILE%\Desktop\New_Folder\"
)
这将复制包含文字搜索字符串的所有文件(以不区分大小写的方式)。