-4

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

4

4 回答 4

1

尝试:

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

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

于 2013-10-25T08:43:07.403 回答
0

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

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

只要将文件名放在文本文件的单独行中,这就会起作用。如果要使用此行创建批处理文件,请将百分比加倍。

于 2013-10-25T15:17:58.687 回答
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!"
)

希望这可以帮助。

于 2013-10-25T08:30:31.853 回答
0

尝试这个:

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

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

莫娜

于 2013-10-25T08:22:26.080 回答