感谢您抽出宝贵的时间来帮助我解决我要解决的问题。我已经写了一些批处理文件,但是我没有太多经验,所以这对我来说有点困难。我正在尝试将pdf文件从特定位置传输到另一个位置的单个文件夹。每个文件将包含此格式 “ GOOGLE EARTH_2018-08-07_5485A635.pdf”,并基于“ GOOGLE EARTH_”将其转移到名为“ GOOGLE EARTH_Google Corporation”的合法文件夹中。因此,根据文件的初始部分,将其传输到以指定文件名开头的文件夹。到目前为止,这是我目前无法使用的内容。
@ECHO OFF
SETLOCAL
SET "sourcedir=C:\Users\Alpha\Documents\NOTEPAD Coding\File Transfer Coding\Files"
SET "destdir=C:\Users\Alpha\Documents\NOTEPAD Coding\File Transfer Coding\Transfer"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*.pdf" '
) DO (
FOR /f "tokens=1delims=_-" %%b IN ("%%a") ) DO (
FOR /f "delims=" %%d IN (
'dir /b /ad "%destdir%\*%%b*" '
) DO (
MOVE "%%a" "%sourcedir%\%%d\"
)
)
GOTO :EOF
答案 0 :(得分:0)
在我的回答中,我已将您的代码对齐以提高可读性,以向您显示括号与每个FOR
命令如何对齐。我更改了MOVE
命令以使用源目录变量,因为第一个FOR
变量仅包含文件名。还更改了第一个IN
子句以迭代PDF
文件。
@ECHO OFF
SETLOCAL
SET "sourcedir=C:\Users\Alpha\Documents\NOTEPAD Coding\File Transfer Coding\Files"
SET "destdir=C:\Users\Alpha\Documents\NOTEPAD Coding\File Transfer Coding\Transfer"
FOR /f "delims=" %%a IN ('dir /b /a-d "%sourcedir%\*.pdf" ') DO (
FOR /f "tokens=1 delims=_-" %%b IN ("%%a") DO (
FOR /f "delims=" %%d IN ('dir /b /ad "%destdir%\*%%b*" ') DO (
MOVE "%sourcedir%\%%a" "%destdir%\%%d\"
)
)
)
GOTO :EOF