如何像复制到其中的文件一样命名文件夹?
How to name a folder like the files that are copied into it?
我有一个批处理脚本,可以将 .eps
和 .pdf
文件移动到单独的文件夹中,.eps
在 Highres
中,.pdf
在 [=16] 中=].但是我想将主文件夹命名为文件名。
例如,如果我正在复制 Man.eps
和 Man.pdf
,则相应的主文件夹名称应为 Man
,其中 Man.eps
应位于 Highres
子文件夹,Man.pdf
应该在 Lowres
子文件夹中。
这是我到目前为止的成就:
@echo off & setlocal
> nul mkdir "%%~pA"
for %%F in (*.eps) do (
> nul mkdir "%%~pA/HIGHRES"
> nul move "%%F" "%%~pA/HIGHRES"
for %%F in (*.pdf) do (
> nul mkdir "%%~pA/LOWRES"
> nul move "%%F" "%%~pA/LOWRES"
)
)
它创建文件夹名称 %%~pA
,我只想将文件名用作文件夹名称...
您的代码有几处错误。当使用 for 循环文件集时,您应该使用 for /R
。此外,%%~pA
试图获取您没有的名为 %%A
的变量的一部分。此外,您不应忘记关闭第一个 for 循环。最后,您应该分别使用 ~n
和 ~nx
来获取文件名或文件名+扩展名。
试试这个:
@echo off
for /R %%F in (*.eps) do (
mkdir "%%~nF/HIGHRES"
move "%%F" "%%~nF/HIGHRES/%%~nxF"
)
for /R %%F in (*.pdf) do (
mkdir "%%~nF/LOWRES"
move "%%F" "%%~nF/LOWRES/%%~nxF"
)
我有一个批处理脚本,可以将 .eps
和 .pdf
文件移动到单独的文件夹中,.eps
在 Highres
中,.pdf
在 [=16] 中=].但是我想将主文件夹命名为文件名。
例如,如果我正在复制 Man.eps
和 Man.pdf
,则相应的主文件夹名称应为 Man
,其中 Man.eps
应位于 Highres
子文件夹,Man.pdf
应该在 Lowres
子文件夹中。
这是我到目前为止的成就:
@echo off & setlocal
> nul mkdir "%%~pA"
for %%F in (*.eps) do (
> nul mkdir "%%~pA/HIGHRES"
> nul move "%%F" "%%~pA/HIGHRES"
for %%F in (*.pdf) do (
> nul mkdir "%%~pA/LOWRES"
> nul move "%%F" "%%~pA/LOWRES"
)
)
它创建文件夹名称 %%~pA
,我只想将文件名用作文件夹名称...
您的代码有几处错误。当使用 for 循环文件集时,您应该使用 for /R
。此外,%%~pA
试图获取您没有的名为 %%A
的变量的一部分。此外,您不应忘记关闭第一个 for 循环。最后,您应该分别使用 ~n
和 ~nx
来获取文件名或文件名+扩展名。
试试这个:
@echo off
for /R %%F in (*.eps) do (
mkdir "%%~nF/HIGHRES"
move "%%F" "%%~nF/HIGHRES/%%~nxF"
)
for /R %%F in (*.pdf) do (
mkdir "%%~nF/LOWRES"
move "%%F" "%%~nF/LOWRES/%%~nxF"
)