批处理从字符串中删除字符
这可能看起来很基本,但是有没有办法创建批处理以从字符串中删除字符从txt文件。 ?批处理从字符串中删除字符
如果我已经有此.txt文件内
2005060.png
2005070.png
2005080.png
2005090.png
那么有没有一种方式来创建一个批处理文件,将在年底卸下巴纽只有这表明一个新的.txt文件
2005060
2005070
2005080
2005090
感谢您的任何帮助! :)
你可以做到这一点按下面的命令脚本:
@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
此输出:
2005060.png
2005060
的魔线,当然是:
set variable=!variable:~0,-4!
这删除了最后四个字符。
如果你有一个文件testprog.in
用线它,它,如:
2005060.png
1 2 3 4 5 leave this line alone.
2005070.png
2005080.png
2005090.png
您可以使用稍微修改:
@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
,输出:
2005060
1 2 3 4 5 leave this line alone.
2005070
2005080
2005090
请记住它将不会输出空行(尽管它将做空行的行)。
根据输入文件允许的内容,这可能不是问题。如果这是一个问题,我的建议是让你的手CygWin或GnuWin32(或Powershell,如果你在你的平台上),并使用一些真正的脚本语言。
只是试过它没有问题,它运行。再次感谢!!! – steven 2010-09-17 06:46:43
@steven,那么你应该接受答案。 – 2010-09-17 16:18:08
如果您试图读取.png文件的目录并输出没有扩展名的列表? 试试这个:
@echo off
echo. > testprog.txt
for /R "C:\Users\%USERNAME%\Documents" %%f in (*.png) do (
echo %%~nf >> testprog.txt
)
start testprog.txt
什么平台?视窗?如果是这样,你是否安装了PowerShell? – 2010-09-17 05:58:48
我在Windows平台 – steven 2010-09-17 06:26:14