用于整理文件夹的简单批处理脚本
simple batch script for tidy up folder
例如,我在我的 PC 桌面上放置了一个如下所示的 for 循环,以便将所有文件移动到以其扩展名命名的相应文件夹中。
for %%G in (*.*) do (
md "%%~xG" 2>nul
move "%%G" "%%~xG"
)
到目前为止脚本没问题,我想用以下内容改进它,
- 仅当文件夹不存在时创建文件夹
- make folder by parameter expansion会创建一个文件夹.jpg,但我想要的是jpg,我可以使用set x=%%~xG之类的东西,setlocal和EnabledDelayExpansion,然后!x:~1!到 trim 点
- 不要将批处理文件本身移动到创建的 bat 文件夹中。我应该使用像 %f0 这样的扩展吗?
如有任何帮助,我们将不胜感激。
setlocal enabledelayedexpansion
for %%a in (*.*) do (
if not "%%~xa"=="" (
set "ext=%%~xa" & set "ext=!ext:~1!"
if not exist "!ext!" mkdir "!ext!" 2>nul
if not "%%~fa"=="%~f0" (
move "%%a" "!ext!\%%a" >nul
)
)
)
endlocal
写作时,我意识到@Stephan 的评论与此答案相同,因此优先考虑他!
例如,我在我的 PC 桌面上放置了一个如下所示的 for 循环,以便将所有文件移动到以其扩展名命名的相应文件夹中。
for %%G in (*.*) do (
md "%%~xG" 2>nul
move "%%G" "%%~xG"
)
到目前为止脚本没问题,我想用以下内容改进它,
- 仅当文件夹不存在时创建文件夹
- make folder by parameter expansion会创建一个文件夹.jpg,但我想要的是jpg,我可以使用set x=%%~xG之类的东西,setlocal和EnabledDelayExpansion,然后!x:~1!到 trim 点
- 不要将批处理文件本身移动到创建的 bat 文件夹中。我应该使用像 %f0 这样的扩展吗?
如有任何帮助,我们将不胜感激。
setlocal enabledelayedexpansion
for %%a in (*.*) do (
if not "%%~xa"=="" (
set "ext=%%~xa" & set "ext=!ext:~1!"
if not exist "!ext!" mkdir "!ext!" 2>nul
if not "%%~fa"=="%~f0" (
move "%%a" "!ext!\%%a" >nul
)
)
)
endlocal
写作时,我意识到@Stephan 的评论与此答案相同,因此优先考虑他!