标题: [文本处理] 批处理命令findstr /v /g:的问题的困惑 [打印本页]
作者: yyz219 时间: 2022-2-9 17:26 标题: 批处理命令findstr /v /g:的问题的困惑
- @echo off
- findstr /v /g:需要删除内容1.txt "a.txt" >"c.txt"
- pause >nul
复制代码
++++++++++++++++++++++++++++++++++
a.txt内容是:- @Echo Off
- Title Reg Converter v1.1 & Color 1A
- cd %systemroot%\system32
- call :IsAdmin
-
- REM ; 由 Total Uninstall 产生
- REM ;【窗口位置:“左300”、“上150”】
- Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
- Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
- Exit
-
- :IsAdmin
- Reg.exe query "HKU\S-1-5-19\Environment"
- If Not %ERRORLEVEL% EQU 0 (
- Cls & Echo You must have administrator rights to continue ...
- Pause & Exit
- )
- Cls
- goto:eof
复制代码
++++++++++++++++++++++++++++++++
需要删除内容1.txt:- Title Reg Converter v1.1 & Color 1A
- cd %systemroot%\system32
- call :IsAdmin
-
- REM ; 由 Total Uninstall 产生
- REM ;【窗口位置:“左300”、“上150”】
-
- :IsAdmin
- Reg.exe query "HKU\S-1-5-19\Environment"
- If Not %ERRORLEVEL% EQU 0 (
- Cls & Echo You must have administrator rights to continue ...
- Pause & Exit
- )
- Cls
- goto:eof
复制代码
++++++++++++++++++++++++++++++++++++++++++++++
运行后得到的c.txt
@Echo Off
cd %systemroot%\system32——————————这个为什么没有删除?
Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
Exit
Reg.exe query "HKU\S-1-5-19\Environment"——————————这个为什么没有删除?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
这个问题困惑了很久,不知道为什么会这样?
+++++++++++++++++++++++++++
我希望得到的结果是:- @Echo Off
- Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
- Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
- Exit
复制代码
【实际上我通过第2次操作,已经能够实现上面的结果,只是想知道在哪里出现了问题】- findstr /v /g:需要删除内容2.txt "c.txt" >d.txt
复制代码
作者: yyz219 时间: 2022-2-9 17:58
奇怪,将需要删除内容1.txt改为:
Title Reg Converter v1.1 & Color 1A
cd
call :IsAdmin
REM ; 由 Total Uninstall 产生
REM ;【窗口位置:“左300”、“上150”】
:IsAdmin
Reg.exe query
If Not %ERRORLEVEL% EQU 0 (
Cls & Echo You must have administrator rights to continue ...
Pause & Exit
)
Cls
goto:eof
+++++++++++++++++++++++
就能够一次删除干净:
@Echo Off
Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
Exit
+++++++++++++++++++++++++++++++++
上面的空行有简单的办法去除吗?
作者: idwma 时间: 2022-2-9 18:21
斜杠\在正则里用于转义,加上/l参数关掉正则解析- @echo off
- findstr /l /v /g:需要删除内容1.txt "a.txt" >"c.txt"
- pause >nul
复制代码
作者: flashercs 时间: 2022-2-9 18:24
复制代码
作者: yyz219 时间: 2022-2-9 18:56
回复 3# idwma
感谢上面两位朋友
@Echo Off
Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
Exit
Pause & Exit—————————————————————这个还没有删除掉
作者: qixiaobin0715 时间: 2022-2-10 10:15
本帖最后由 qixiaobin0715 于 2022-2-10 10:18 编辑
代码中最好少用中文字符,容易出错:- @echo off
- findstr /v /l /g:b.txt "a.txt"|findstr .
- pause
复制代码
作者: yyz219 时间: 2022-2-10 11:28
回复 6# qixiaobin0715
还是有 Pause & Exit 非常感谢
作者: yyz219 时间: 2022-2-10 11:35
回复 6# qixiaobin0715
原来这样可以去空行,非常感谢
作者: qixiaobin0715 时间: 2022-2-10 12:37
回复 7# yyz219
我这里没有问题,测试结果如下:- C:\Users\Administrator\Desktop\test1>type a.txt b.txt test.bat
-
- a.txt
-
-
- @Echo Off
- Title Reg Converter v1.1 & Color 1A
- cd %systemroot%\system32
- call :IsAdmin
-
- REM ; 由 Total Uninstall 产生
- REM ;【窗口位置:“左300”、“上150”】
- Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
- Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
- Exit
-
- :IsAdmin
- Reg.exe query "HKU\S-1-5-19\Environment"
- If Not %ERRORLEVEL% EQU 0 (
- Cls & Echo You must have administrator rights to continue ...
- Pause & Exit
- )
- Cls
- goto:eof
-
- b.txt
-
-
- Title Reg Converter v1.1 & Color 1A
- cd %systemroot%\system32
- call :IsAdmin
-
- REM ; 由 Total Uninstall 产生
- REM ;【窗口位置:“左300”、“上150”】
-
- :IsAdmin
- Reg.exe query "HKU\S-1-5-19\Environment"
- If Not %ERRORLEVEL% EQU 0 (
- Cls & Echo You must have administrator rights to continue ...
- Pause & Exit
- )
- Cls
- goto:eof
-
- test.bat
-
-
- @echo off
- findstr /v /l /g:b.txt "a.txt"|findstr .
- pause
-
-
- C:\Users\Administrator\Desktop\test1>test.bat
- @Echo Off
- Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
- Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
- Exit
- 请按任意键继续. . .
复制代码
作者: yyz219 时间: 2022-2-10 12:51
本帖最后由 yyz219 于 2022-2-10 12:59 编辑
@echo off
findstr /v /l /g:b.txt "a.txt"|findstr .
pause
++++++++++++++++++++++++++++
a.txt的内容不会变化
必须
@echo off
findstr /v /l /g:b.txt "a.txt"|findstr . >c.txt
pause
作者: yyz219 时间: 2022-2-10 13:04
b.txt中,去掉 Pause & Exit左边的空格就可以
作者: yyz219 时间: 2022-2-10 14:18
本帖最后由 yyz219 于 2022-2-10 14:42 编辑
回复 3# idwma
最终解决方案:
@echo off
findstr /I /v /L /g:需要删除内容1.txt "a.txt"|findstr . >c.txt
c.txt
exit
+++++++++++++++++++++++++++++++
加参数 /L————————解决斜杠问题我已经明白
再加参数 /I——————就能完美解决问题
能够讲解一下为什么吗?
++++++++++++++++++++++++
作者: qixiaobin0715 时间: 2022-2-12 10:05
在cmd控制平台中:findstr /? 回车
作者: yyz219 时间: 2022-2-12 10:14
在cmd控制平台中:findstr /? 回车
qixiaobin0715 发表于 2022-2-12 10:05
我知道/I 指定搜索不分大小写。——————————————————问题是这里跟大小写有什么关系?
作者: qixiaobin0715 时间: 2022-2-12 10:23
本帖最后由 qixiaobin0715 于 2022-2-12 10:24 编辑
回复 14# yyz219
我测试加不加/i都没问题(win10系统),保留空格也行,见9楼。难道与系统有关。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |