我有一个批处理脚本,可以将.eps
和.pdf
个文件移到.eps
Highres
和.pdf
Lowres
的单独文件夹中。但我想将主文件夹命名为文件名。
例如,如果我正在复制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
创建文件夹名称,我只想将文件名用作文件夹名称...
答案 0 :(得分:1)
您的代码存在一些问题。当使用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"
)