这可能看起来很基本但是有没有办法创建批处理从txt文件中删除字符串中的char.?
如果我已经在.txt文件中有这个
2005060.png
2005070.png
2005080.png
2005090.png
Run Code Online (Sandbox Code Playgroud)
那么有没有办法创建一个批处理文件,将删除最后的.png只在新的.txt文件中显示
2005060
2005070
2005080
2005090
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!:)
pax*_*blo 21
您可以按照以下命令脚本执行此操作:
@setlocal enableextensions enabledelayedexpansion
@echo off
set variable=2005060.png
echo !variable!
if "x!variable:~-4!"=="x.png" (
set variable=!variable:~0,-4!
)
echo !variable!
endlocal
Run Code Online (Sandbox Code Playgroud)
这输出:
2005060.png
2005060
Run Code Online (Sandbox Code Playgroud)
当然,神奇的界限是:
set variable=!variable:~0,-4!
Run Code Online (Sandbox Code Playgroud)
删除最后四个字符.
如果你有一个testprog.in带行的文件,就像:
2005060.png
1 2 3 4 5 leave this line alone.
2005070.png
2005080.png
2005090.png
Run Code Online (Sandbox Code Playgroud)
你可以稍作修改:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "delims=" %%a in (testprog.in) do (
set variable=%%a
if "x!variable:~-4!"=="x.png" (
set variable=!variable:~0,-4!
)
echo.!variable!
)
endlocal
Run Code Online (Sandbox Code Playgroud)
哪个输出:
2005060
1 2 3 4 5 leave this line alone.
2005070
2005080
2005090
Run Code Online (Sandbox Code Playgroud)
请记住,它不会输出空行(尽管它会在它们上面有空格行).
这可能不是问题,具体取决于输入文件中允许的内容.如果这是一个问题,我的建议是开始使用CygWin或GnuWin32(如果你的平台上有它,可以使用Powershell)并使用一些真正的脚本语言.