我正试图撤消我不得不在数据库中实施的一个糟糕的设计决策,希望有一个可以解决此问题的批处理文件。
当前,用于记录的文件按名称字段存储,然后按记录编号存储。我的上任老板坚持要能够通过Windows而不是记录界面浏览记录。我需要解决此问题,因为我需要能够创建没有名称字段的记录。
这是当前结构
Recordfiles
John Smith
230
approvedpacket.pdf
initialpacket.pdf
232
Approved packet.pdf
Initialpacket.pdf
Jane Frank
343
Deniedpacket.pdf
我需要的是它的外观
Recordfiles
230
232
343
因此,我需要将每个文件夹及其内容从/ recordfiles /下移两级。我已经尝试了来自各个站点的许多批处理文件解决方案,但到目前为止还没有运气。每个按钮只弹出命令窗口一会儿。
值得注意的是:我对此非常陌生,我只知道一些非常入门级的视觉基础,并且没有经过正规的培训。任何帮助将不胜感激。
编辑:好的,我找到了一种方法。我去了/ recordfiles /,进行了*搜索,等待它加载那些文件夹中的每个文件,选择所有编号的文件夹,然后将它们复制/粘贴到我想要的位置。因此,我们并不着急,但是我很想知道如何为将来的项目使用批处理文件来做到这一点。
答案 0 :(得分:0)
> tree /F
A:.
│ _.cmd
│
└───Recordfiles
├───Jane Frank
│ └───343
│ Deniedpacket.pdf
│
└───John Smith
├───230
│ approvedpacket.pdf
│ initialpacket.pdf
│
└───232
Approved packet.pdf
Initialpacket.pdf
这一行进行移动
> for /f "delims=" %A in ('dir /B/S/AD "???" ^|findstr "\\[0-9][0-9][0-9]$" ') do @Move "%A" "%A\..\.."
在批处理文件中,将百分号加倍
@Echo off
CD /D "X:\path\Recordfiles"
for /f "delims=" %%A in (
'dir /B/S/AD "???" ^|findstr "\\[0-9][0-9][0-9]$" '
) do Move "%%A" "%%A\..\.."
> tree /F
Auflistung der Ordnerpfade für Volume RamDisk
Volumeseriennummer : 5566-7788
A:.
│ _.cmd
│
└───Recordfiles
├───230
│ approvedpacket.pdf
│ initialpacket.pdf
│
├───232
│ Approved packet.pdf
│ Initialpacket.pdf
│
├───343
│ Deniedpacket.pdf
│
├───Jane Frank
└───John Smith
答案 1 :(得分:0)
这(未试用)呢?
pushd "D:\path\to\RecordFiles" || exit /B 1
for /F "delims= eol=|" %%A in ('dir /B /A:D "*"') do (
for /D %%B in ("%%~A\*") do (
move /Y "%%~B" "%%~dpA%%~nxB"
)
rmdir "%%~A"
)
popd