将文件复制到新创建的目录并重命名问题

时间:2018-08-08 20:07:59

标签: file batch-file

我有一个批处理文件,该文件可用于装有图像的文件夹。 (1)对于每个图像,它都会创建一个文件夹,并使用图像名称重命名该文件夹(2),然后将图像放入文件夹中(3),然后复制图像并将副本重命名为“ -origional”。一切正常,但是在步骤(4)中,我尝试将来自另一个目录的文件放入刚刚创建的所有文件夹中,并将其重命名为与文件夹相同。

(1) for %%i in (*.jpg) do mkdir "%%~ni"
(2) for %%i in (*.jpg) do move "%%i" "%%~ni"
(3) for /R %%f in (*.jpg) do copy "%%~f" "%%~dpnf - Original%%~xf"
(4) copy "C:\Projects\test.csv" "%%~ni\%%~dpnf.csv"

我几乎可以使用它:

copy "C:\Projects\test.csv" "%~dp0\hello.csv"

将其带到批处理文件的目录并重命名。但是我无法将其复制到新目录中并重命名。

新编辑的代码:

for %%i in (*.jpg) do mkdir "%%~ni"
for %%i in (*.jpg) do move "%%i" "%%~ni"
for /R %%f in (*.jpg) do copy "%%~f" "%%~dpnf - Original%%~xf"
for /D %%a  in ("%~dp0\*.*") do xcopy  /y  /d  C:\Projects\test.csv "%%a\"

这是最终的代码,适用于任何其他需要此代码的人:

for %%i in (*.jpg) do mkdir "%%~ni"
for %%i in (*.jpg) do move "%%i" "%%~ni"
for /R %%f in (*.jpg) do copy "%%~f" "%%~dpnf - Original%%~xf"
for /D %%a in ("*") do copy /y /d C:\Projects\test.csv "%%a\%%a.csv"

1 个答案:

答案 0 :(得分:1)

最后一行太复杂了。如果您只想将目录匹配到当前路径,就足够了:

for /D %%a in ("*") do xcopy /y /d C:\Projects\test.csv "%%a"

编辑

要将重命名CSV文件作为复制到其中的文件夹,请执行以下操作:

for /D %%a in ("*") do xcopy /y /d C:\Projects\test.csv "%%a\%%a.csv"