如何使用Windows批处理脚本从字符串中删除特定模式

时间:2013-10-25 07:04:52

标签: batch-file batch-processing

我有一些文件列表,如first.js#19 edit,traval.jsp#233 edit,run.css#25 edit。我想从#中删除部分,我只想要文件名,即first.js,traval.jsp,run.css如何使用批处理编程。请分享您的代码。谢谢你的帮助

4 个答案:

答案 0 :(得分:1)

尝试:

for /f "tokens=1*delims=#" %%a in ('dir /b /a-d') do ren "%%~a#%%~b" "%%~a"

如果第一个#后跟另一个#,则无效。

答案 1 :(得分:0)

试试这个:

for /r %%a in (*) do (for /f "delims=#" %%z in ("%%~a") do (ren %%a %%z)

这应该有效。不确定空格,但您的示例不包含任何空格。

莫纳

答案 2 :(得分:0)

尝试此代码(假设批处理脚本与文件位于同一目录中):

@echo off
SetLocal EnableDelayedExpansion

for /f "delims=# tokens=1*" %%a in ('dir /b') do (
    set "oldName=%%a#%%b"
    set "newName=%%a"

    ren "!oldName!" "!newName!"
)

希望这有帮助。

答案 3 :(得分:0)

您可以直接从命令行执行此操作:

for /f "delims=#" %a in (theTextFile.txt) do echo %a

只要文件名放在文本文件的各行中,就可以正常工作。如果要使用此行创建批处理文件,请将百分比加倍。