我有一些文件列表,如first.js#19 edit,traval.jsp#233 edit,run.css#25 edit。我想从#中删除部分,我只想要文件名,即first.js,traval.jsp,run.css如何使用批处理编程。请分享您的代码。谢谢你的帮助
答案 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
只要文件名放在文本文件的各行中,就可以正常工作。如果要使用此行创建批处理文件,请将百分比加倍。