【问题标题】:How to remove specific pattern from string using windows batch script如何使用 Windows 批处理脚本从字符串中删除特定模式
【发布时间】:2013-11-04 04:20:04
【问题描述】:

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

【问题讨论】:

    标签: batch-file batch-processing


    【解决方案1】:

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

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

    只要将文件名放在文本文件的单独行中,此方法就可以工作。如果你想用这一行制作一个批处理文件,请将百分比加倍。

    【讨论】:

      【解决方案2】:

      试试这个代码(假设你的批处理脚本与文件位于同一目录中):

      @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】:

      尝试:

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

      这不起作用,如果第一个 # 后面跟着另一个 #

      【讨论】:

        【解决方案4】:

        试试这个:

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

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

        莫娜

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-14
          相关资源
          最近更新 更多