【发布时间】:2016-02-22 16:41:28
【问题描述】:
最后我必须根据扩展名将具有不同扩展名的文件移动到文件夹中,但我无法摆脱“。”在创建的文件夹之前...这是我的批处理文件:
for %%i in (*) do mkdir "%%~xi" & move "%%i" "%%~xi"
请帮我去掉那个点。谢谢
【问题讨论】:
标签: file batch-file directory
最后我必须根据扩展名将具有不同扩展名的文件移动到文件夹中,但我无法摆脱“。”在创建的文件夹之前...这是我的批处理文件:
for %%i in (*) do mkdir "%%~xi" & move "%%i" "%%~xi"
请帮我去掉那个点。谢谢
【问题讨论】:
标签: file batch-file directory
一种方式:
setlocal enabledelayedexpansion
for %%i in (*) do (
set ext=%%~xi
set ext=!ext:~1!
mkdir "!ext!"
move "%%i" "!ext!"
)
【讨论】:
set "x=!x:~1!"
您所做的只是在文件扩展名之后创建一个文件夹名称。要删除点,您需要做的就是删除第一个字符。
setlocal enabledelayedexpansion
for %%i in (*) do (
set "x=%%~xi"
set x=!x:~1,400!
mkdir "!x!"
move "%%i" "!x!"
)
pause `
如果您只是想重命名文件夹:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%D in ('dir /a:d /b') do (
set x=%%D
set x=!x:~1,100!
set y=!x:~0,1!
if "!y!"=="." (
rename "%%D" "!x!"
)
)
pause
【讨论】:
set "x=!x:~1!",您可以更轻松地使用 !x:~1! 而不是 !x:~1,400!