【发布时间】:2021-01-18 08:50:19
【问题描述】:
例如,我在我的 PC 桌面上放了一个如下的 for 循环,以便将所有文件移动到由其扩展名命名的相应文件夹中。
for %%G in (*.*) do (
md "%%~xG" 2>nul
move "%%G" "%%~xG"
)
到目前为止,脚本还可以,只是我想通过以下方式对其进行改进,
- 仅当文件夹不存在时才创建文件夹
- 通过参数扩展制作文件夹会创建一个文件夹.jpg,但我想要的是jpg,我可以使用set x=%%~xG之类的东西,用setlocal和EnabledDelayExpansion,然后!x:~1!修剪点
- 不要将批处理文件本身移动到创建的 bat 文件夹中。我应该使用像 %f0 这样的扩展吗?
任何帮助将不胜感激。
【问题讨论】:
-
1) 有什么问题?您的代码不会(重新)创建现有文件夹。 2:是的。 3. 是的 (
if not "%%~FG" == "%~f0" ...) 4. 你可能想要for %%G in (*)("for all files",而不是"for a dot") (更好的*.*- 假设你不想处理没有扩展名的文件)
标签: batch-file move