[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理执行完,怎么自动退出或关闭cmd窗口

从a文件夹移动文件到b文件夹,通过任务计划,分批移动所有文件到b文件夹,
现在这个批处理可以实现,每次执行完怎么自动退出或关闭CMD窗口,本人小白,请大神指教~
@echo off&setlocal enabledelayedexpansion
for /r "G:\a" %%i in (*.txt) do (set /a n+=1
if !n! leq 100 (move "%%i" "G:\b\"))
exit

因a文件夹中文件数量较大,几十万文件,一次移动,b文件夹处理会卡死,移动文件应该也会很卡,所以用批处理+定时任务的方式

TOP

本帖最后由 yakeyun 于 2022-2-15 18:29 编辑

回复 2# qq445690173


由于代码有开启变量延迟,所以导致无法自动关闭。不过可以用批处理调用方式解决(计划任务执行a.bat)。
比如a.bat代码:
@echo off
start /min b.bat
exit

b.bat:
  1. @echo off&setlocal enabledelayedexpansion
  2. ::检索文件并移动,3秒内同时操作30个文件,如果文件较大,可以适当的增加等待时长。
  3. for /f "tokens=* delims=, " %%a in ('dir /a /s /b G:\a\*.txt') do (
  4.     set /a n+=1
  5.     set /a m=n%%30
  6.     if !m! equ 0 (
  7.     TIMEOUT /T 3 >nul
  8.     )
  9.     move "%%a" "G:\b\"
  10.     )
  11. exit
复制代码
如果不想多个脚本调用
可以在最后直接加一个查杀CMD进程的命令

TOP

回复 3# yakeyun


    试了一下,不行啊,b.bat好像没有东西执行,而且b.bat cmd窗口也不会自己关掉,还望指教一下!

TOP

本帖最后由 yakeyun 于 2022-2-15 18:30 编辑

回复 4# qq445690173


这边测试没问题,由于start 加了/min 命令,所以批处理执行窗口是最小化状态执行。
代码已经稍作修改,加入中文说明,避免出现中文文件处理不了的情况。批处理保存格式记得用ANSI格式。
如果想知道是否变化,只需要查看B文件夹文件数量是否增加即可。

TOP

本帖最后由 qq445690173 于 2022-2-16 08:58 编辑

回复 5# yakeyun


    非常感谢,我刚刚用少量文件进行测试脚本执行正常,但这个b.bat 运行一次会把文件全部移走
    有个问题,文件数量过大的时候dir这个命令取文件数比较费劲,b.bat会一直卡着,不会处理文件,(截图传不上来)
    可能我表述不准确,现在不能全部移,比如执行这个a.bat批处理移走1000个文件,定时任务计划20分钟后再执行a.bat移走1000文件,这样每20分钟执行一次执行下去。

TOP

回复 6# qq445690173


如果只是单层目录,直接把DIR命令去掉,直接执行移动操作。DIR文件过多情况下,检索都需要很长时间。

TOP

回复 6# qq445690173


如果需要上传文件,可以用阿里云盘或百度网盘。
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# yakeyun


    非常感谢,非常感谢!
    稍作改动已可以满足我的需求了!

TOP

回复 8# Batcher


    下次有需要再传图,非常感谢!

TOP

返回列表