windows - 如何根据文件名自动创建文件夹并使用 .BAT 将文件移动到其文件夹中
问题描述
我已经解决了我的问题......我没有解决的是如果.bat
文件位于父文件夹中并且它应该适用于所有子文件夹,该怎么做?
目前,存在一个限制,即仅当文件与.bat
文件位于同一文件夹中时才创建文件夹。如果文件位于子文件夹中,则无法创建文件夹。
我所拥有的是:
这个文件名.bat
是:
组织.bat
@echo off
for %%i in (*) do (
if not "%%~ni" == "organize" (
md "%%~ni" && move "%%~i" "%%~ni"
)
)
我现在是怎么做的:
- 我将
.bat
文件与文件一起放在一个文件夹中 - 当我单击它时,它将根据该文件夹中的文件创建名称的文件夹
- 它还将移动那些同名文件夹中的每个文件
我需要的:
- 将
.bat
文件放在包含文件的许多子文件夹的主文件夹中 - 单击它以执行上述相同的任务
抱歉,如果我的解释令人困惑……我希望它仍然可以理解。
先感谢您!
解决方案
您的尝试非常接近工作,但请注意使用简单方法而不检查每个细节的皱纹,因此,从这里开始:-
@echo off & Title %~n0
REM I recommend using cd /d "%~dp0" to ensure you start from the known cmd file folder location not some system folder
cd /D "%~dp0"
REM add the /R switch to run through subdirs
for /R %%i in (*) do (
REM replace organize to %~n0 so as to aid renaming by other users
if not "%%~DPni" == "%~DPn0" (
REM to allow for nested paths we need a fuller DP location for N (check it works exactly as desired then remove the echos)
echo md "%%~DPni" && echo move "%%~i" "%%~DPni"
)
)
小心带有双 .dot.s 的文件,例如 cmd.exe.lnk 所以首先检查那些回显
md "C:\Users\me\Favorites\Links\cmd.exe"
move "C:\Users\me\Favorites\Links\cmd.exe.lnk" "C:\Users\me\Favorites\Links\cmd.exe"
推荐阅读
- hibernate - 如何根据使用 CriteriaBuilder 的第二列中的值按一列中的值对查询结果进行排序
- reactjs - 如何控制 react-router-dom 链接导航:它必须重新加载组件还是必须带回现有组件?
- calendar - 关系数据库中的周期 - DAX/Power BI
- html - 如何将图像定位在标题内 div 的左侧?
- html - CSS:在同一行上对齐 div 和文本,并在 div 下的新行上换行
- python - 从现有 Python 程序中为 Python 程序打开单独的 CMD
- mysql - 如何在同一个表中建立多个关系ManyToMany
- c++ - .dylib 外部符号在 Mac OSX 上发生冲突,如何从应用程序已加载的外部符号中重新加载外部符号的私有副本?
- c# - "找不到方法:'System.Text.Json.JsonEncodedText System.Text.Json.JsonEncodedText.Encode(System.String,System.Text.Encodings.Web.JavaScriptEncoder)
- reactjs - 如果我尝试在 webpack 模式下运行:为什么我无法正确获取 Material-ui 样式:React.js 中的“生产”?