.Bat 文件通过文件扩展名和子字符串文件名移动文件
.Bat file to move file by file extension and substring file name
我是 .bat 脚本的新手。我正在尝试为 Windows 创建一个 .bat 文件,它只允许我移动包含子字符串“A20”的 pdf 文件。
在我的示例中,任何文件都被移动了,我不明白哪里出了问题。
@echo off
echo %1|find ".pdf" >nul
if errorlevel 0 (
echo %1|find "A20" >nul
if errorlevel 1 (echo notfound) else (move C:\Users\Jesus\Downloads\source\%1 C:\Users\Jesus\Downloads\destination_A20\%1)
) else (
echo notfound
)
当我运行脚本时,任何文件都会被移动。当文件名包含“A20”
时,我只需要移动 pdf 文件
我该怎么做?
您可以改用 findstr。
@echo off
echo %1|findstr /i /c:".pdf" >nul
if errorlevel 0 (
echo %1|findstr /i /c:"A20" >nul
if errorlevel 1 (echo notfound) else (move C:\Users\Jesus\Downloads\source\%1 C:\Users\Jesus\Downloads\destination_A20\%1)
) else (
echo notfound
)
有几个选项供您选择。您可以使用命令修饰符来隔离文件扩展名。然后您可以使用字符串替换来查看基本文件名中是否存在 A20。您可以通过阅读 CALL
命令的帮助来了解修饰符,您可以通过阅读 SET
命令的帮助来了解字符串替换。
set "filename=%~n1"
IF /I "%~x1"==".pdf" (
IF NOT "%filename:A20=%"=="%filename%" (
move "C:\Users\Jesus\Downloads\source\%~nx1" "C:\Users\Jesus\Downloads\destination_A20\"
) else (
echo File is is a PDF but A20 not found
)
) else (
echo file is not a PDF
)
如果您只想从一个目录简单地移动到另一个目录,您可以使用通配符。
move "C:\Users\Jesus\Downloads\source\*A20*.pdf" "C:\Users\Jesus\Downloads\destination_A20\"
我是 .bat 脚本的新手。我正在尝试为 Windows 创建一个 .bat 文件,它只允许我移动包含子字符串“A20”的 pdf 文件。
在我的示例中,任何文件都被移动了,我不明白哪里出了问题。
@echo off
echo %1|find ".pdf" >nul
if errorlevel 0 (
echo %1|find "A20" >nul
if errorlevel 1 (echo notfound) else (move C:\Users\Jesus\Downloads\source\%1 C:\Users\Jesus\Downloads\destination_A20\%1)
) else (
echo notfound
)
当我运行脚本时,任何文件都会被移动。当文件名包含“A20”
时,我只需要移动 pdf 文件我该怎么做?
您可以改用 findstr。
@echo off
echo %1|findstr /i /c:".pdf" >nul
if errorlevel 0 (
echo %1|findstr /i /c:"A20" >nul
if errorlevel 1 (echo notfound) else (move C:\Users\Jesus\Downloads\source\%1 C:\Users\Jesus\Downloads\destination_A20\%1)
) else (
echo notfound
)
有几个选项供您选择。您可以使用命令修饰符来隔离文件扩展名。然后您可以使用字符串替换来查看基本文件名中是否存在 A20。您可以通过阅读 CALL
命令的帮助来了解修饰符,您可以通过阅读 SET
命令的帮助来了解字符串替换。
set "filename=%~n1"
IF /I "%~x1"==".pdf" (
IF NOT "%filename:A20=%"=="%filename%" (
move "C:\Users\Jesus\Downloads\source\%~nx1" "C:\Users\Jesus\Downloads\destination_A20\"
) else (
echo File is is a PDF but A20 not found
)
) else (
echo file is not a PDF
)
如果您只想从一个目录简单地移动到另一个目录,您可以使用通配符。
move "C:\Users\Jesus\Downloads\source\*A20*.pdf" "C:\Users\Jesus\Downloads\destination_A20\"