0

我正在尝试做的是自动移动下载,删除不需要的文件,然后通过命令行运行程序,以及谁知道我在完成这个任务时还有什么想法。这是我第一个.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文件被放置在文件夹中,或者真的只是排除自己

4

1 回答 1

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
于 2014-08-28T00:09:49.753 回答