创建批处理文件以浏览文本文件并删除所有引号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建批处理文件以浏览文本文件并删除所有引号相关的知识,希望对你有一定的参考价值。
我正在尝试编写一个批处理文件,该文件遍历一个文件夹中的所有文本文件并删除每个文本文件中的引号,但也会覆盖它们,因此它们仍然具有相同的文件名。
我已经编写了一个批处理文件,它使用一个名为limits.txt的特定文本文件来执行此操作,然后它会在limits_new.txt中保存不带引号的相同Textfile:
@echo off
if not exist "limits.txt" goto :EOF
setlocal EnableDelayedExpansion
del "limits_new.txt" 2>nul
for /F "usebackq delims=" %%I in ("limits.txt") do (
set "Line=%%I"
set "Line=!Line:"= !"
echo !Line!>>"limits_new.txt"
)
del "limits.txt"
endlocal
那么我怎么能改变它来通过更多的文本文件,如limits1.txt test.txt并覆盖它们而没有qutation标记。
谢谢您的帮助!!
答案
你可以使用另一个for
,并用你正在使用的变量替换整个文件名:
@echo off
for %%f in (*.txt) do (
setlocal EnableDelayedExpansion
del "%%f.new" 2>nul
for /F "usebackq delims=" %%I in ("%%f") do (
set "Line=%%I"
set "Line=!Line:"= !"
echo !Line!>>"%%f.new"
)
del "%%f"
ren "%%f.new" "%%f"
endlocal
)
这将从limits.txt生成limits.txt.new,然后用新版本替换原始的limits.txt。如果你想保留limits_new.txt命名约定,那么我认为你想要%%~nf_new.txt
作为输出文件名并删除ren
。
请注意,如果你有sed
,例如从Git Bash,您可以使用正则表达式进行就地文件编辑:
sed -i -e "s/"/ /g" limits.txt
和Git Bash有类似的for
,您可以使用它来更新所有文件,例如
for _f in *.txt; do sed -i -e 's/"/ /g' $_f; done
但要注意:取决于你从哪里得到你的sed也可能会将所有的行结尾从CRLF切换到只有LF。
以上是关于创建批处理文件以浏览文本文件并删除所有引号的主要内容,如果未能解决你的问题,请参考以下文章