我要做的是自动移动下载,删除不需要的文件,然后通过命令行运行程序,以及谁知道我想通过这个任务还有什么。在这里,我有了第一个.bat
文件的开头:
move.bat
:
@echo off
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" .
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"
del "C:\Downloads\*.jpg"
del "C:\Downloads\*.png"
del "C:\Downloads\*.gif"
del "C:\Downloads\*.txt"
del "C:\Downloads\*.nfo"
move "C:\Downloads\*.mp4" "C:\Movies\"
cd "C:\program files\filebot\"
filebot -rename c:\movies
copy "E:\Documents\Tweaks&commands\folderize.bat" "C:\Movies"
cd "C:\Movies\"
folderize.bat
ping 192.0.2.2 -n 1 -w 4000 > nul
rmdir /S /Q "C:\movies\folderize"
现在,一切正常直到运行folderize.bat
。
Folderize.bat
:
@echo off
setlocal enabledelayedexpansion
for %%a in (*.eng*) do (
set file=%%a
ren "!file!" "!file:_=!"
)
@echo off
for %%a in (*.*) do (
md "%%~na" 2>nul
move "%%a" "%%~na"
)
Folderize.bat
完全按照它应该做的去做,但是如果我运行它会包含它自己,创建一个名为folderize的文件夹然后移动到那里。好吧,不是问题,我只会做一个rmdir
,一切都很好。
这不起作用。
在Move.bat
我最初尝试没有ping
命令行。我添加了那条线,因为我认为在尝试删除之前需要几秒钟(老实说,只是在黑暗中刺伤)。那是不行的。
我打开了cmd
提示并手动运行它以查看会发生什么。初始化folderize后,它会移动到它自己的文件夹中,提示无法找到批处理文件并终止。
我是否可以通过某种方式修改folderize.bat
以排除.bat
个文件被放置在文件夹中或实际上只是将自己排除?
答案 0 :(得分:1)
好像它会移动folderize.bat
批处理文件中的所有内容。也许你应该像这样过滤器:
@echo off
setlocal enabledelayedexpansion
for %%a in (*.eng*) do (
set file=%%a
ren "!file!" "!file:_=!"
)
@echo off
for /f "tokens=1* delims=" %%a in ('dir /b /o:-n ^| findstr /iv "folderize.bat"') do (
md "%%~na" 2>nul
move "%%a" "%%~na"
)
此外,您使用call
中的move.bat
命令,如下所示:
call folderize.bat