批量移动文件到文件夹。文件夹根据文件名命名
Batch move files to folders. Folders are named based off of the filename
试图找到一只可以做到这一点的蝙蝠,但没有成功。由于我对批处理编码的了解非常有限,我不知道从哪里开始编辑类似的现有代码。
我的文件夹中有文件,如下所示:
\NAS\ART34.pdf
\NAS\ART35.ai
\NAS\ART36.eps
我想将这些文件移动到服务器上的另一个文件夹中,文件夹结构如下:
\NAS\Art34\Original34.pdf
\NAS\Art35\Original35.ai
\NAS\Art36\Original36.eps
它将文件放入文件名文件夹的原始文件夹中。对不起,如果这令人困惑。
我发现这与我想要的很接近,但减去了字符的删除。
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*.xml" '
) DO (
FOR /f "tokens=1delims=_-" %%b IN ("%%a") DO (
FOR /f "delims=" %%d IN (
'dir /b /ad "%destdir%\*%%b*" '
) DO (
ECHO(MOVE "%%a" "%destdir%\%%d\"
)
)
)
GOTO :EOF
您可以使用此批处理文件将 \NAS\ART\
中的所有非隐藏文件移动到之前创建的合适子目录(如果不存在)并覆盖目标目录中具有相同名称的文件。
@echo off
for %%I in ("\NAS\ART\*") do (
if not "%%I" == "%~f0" (
md "%%~dpnI\Original" 2>nul
move /Y "%%I" "%%~dpnI\Original\"
)
)
IF 条件避免移动批处理文件也存储在目录 \NAS\ART\
中,如果肯定不会发生这种情况,则可以将其删除。
要了解使用的命令及其工作原理,请打开命令提示符 window,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
echo /?
for /?
if /?
md /?
move /?
另请阅读有关 Using Command Redirection Operators 的 Microsoft 文章,了解 2>nul
的解释,该文章用于抑制命令 MD 输出的错误消息以处理 STDERR 在要创建的目录上,方法是将此错误消息重定向到设备 NUL。
试图找到一只可以做到这一点的蝙蝠,但没有成功。由于我对批处理编码的了解非常有限,我不知道从哪里开始编辑类似的现有代码。
我的文件夹中有文件,如下所示:
\NAS\ART34.pdf
\NAS\ART35.ai
\NAS\ART36.eps
我想将这些文件移动到服务器上的另一个文件夹中,文件夹结构如下:
\NAS\Art34\Original34.pdf
\NAS\Art35\Original35.ai
\NAS\Art36\Original36.eps
它将文件放入文件名文件夹的原始文件夹中。对不起,如果这令人困惑。
我发现这与我想要的很接近,但减去了字符的删除。
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*.xml" '
) DO (
FOR /f "tokens=1delims=_-" %%b IN ("%%a") DO (
FOR /f "delims=" %%d IN (
'dir /b /ad "%destdir%\*%%b*" '
) DO (
ECHO(MOVE "%%a" "%destdir%\%%d\"
)
)
)
GOTO :EOF
您可以使用此批处理文件将 \NAS\ART\
中的所有非隐藏文件移动到之前创建的合适子目录(如果不存在)并覆盖目标目录中具有相同名称的文件。
@echo off
for %%I in ("\NAS\ART\*") do (
if not "%%I" == "%~f0" (
md "%%~dpnI\Original" 2>nul
move /Y "%%I" "%%~dpnI\Original\"
)
)
IF 条件避免移动批处理文件也存储在目录 \NAS\ART\
中,如果肯定不会发生这种情况,则可以将其删除。
要了解使用的命令及其工作原理,请打开命令提示符 window,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
echo /?
for /?
if /?
md /?
move /?
另请阅读有关 Using Command Redirection Operators 的 Microsoft 文章,了解 2>nul
的解释,该文章用于抑制命令 MD 输出的错误消息以处理 STDERR 在要创建的目录上,方法是将此错误消息重定向到设备 NUL。