【发布时间】: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
我有文件列表,例如 first.js#19 编辑、traval.jsp#233 编辑、run.css#25 编辑。我想从#中删除部分,我只想要文件名即first.js、traval.jsp、run.css 如何使用批处理编程来做到这一点。请分享您的代码。感谢您的帮助
【问题讨论】:
标签: batch-file batch-processing
您可以直接从命令行执行此操作:
for /f "delims=#" %a in (theTextFile.txt) do echo %a
只要将文件名放在文本文件的单独行中,此方法就可以工作。如果你想用这一行制作一个批处理文件,请将百分比加倍。
【讨论】:
试试这个代码(假设你的批处理脚本与文件位于同一目录中):
@echo off
SetLocal EnableDelayedExpansion
for /f "delims=# tokens=1*" %%a in ('dir /b') do (
set "oldName=%%a#%%b"
set "newName=%%a"
ren "!oldName!" "!newName!"
)
希望这会有所帮助。
【讨论】:
尝试:
for /f "tokens=1*delims=#" %%a in ('dir /b /a-d') do ren "%%~a#%%~b" "%%~a"
这不起作用,如果第一个 # 后面跟着另一个 #。
【讨论】:
试试这个:
for /r %%a in (*) do (for /f "delims=#" %%z in ("%%~a") do (ren %%a %%z)
这应该可行。不确定空格,但您的示例不包含任何空格。
莫娜
【讨论】: