感谢您抽出时间来帮助我解决我正在尝试解决的问题。我已经写了一些批处理文件,但我没有太多的经验,所以这对我来说有点困难。我正在尝试将pdf文件从一个特定位置传输到另一个位置的单独文件夹。每个文件将包含这样的格式“谷歌地球_2018-08-07_5485A635.pdf”,并基于“谷歌EARTH_”,它将转移到它的合法文件夹命名为“谷歌EARTH_Google公司”。因此,根据文件的初始部分,将其传输到以指定文件名开头的文件夹中。这就是我到目前为止所拥有的,但不起作用。
@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发布于 2018-08-08 10:52:24
在我的回答中,为了极佳的可读性,我对齐了您的代码,向您展示了闭括号如何与每个FOR命令对齐。我将MOVE命令改为使用source directory变量,因为第一个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 :EOFhttps://stackoverflow.com/questions/51737550
复制相似问题