找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 7003|回复: 4

[文件操作] 【已解决】批处理替换文件,需要计时以及输入Y/N选项

[复制链接]
发表于 2025-5-20 13:50:16 | 显示全部楼层 |阅读模式
本帖最后由 剑气如霜 于 2025-5-21 14:07 编辑

批处理判断如果B路径A文件存在,提示是否要替换文件,计时3秒后复制当前目录的A文件到B路径,如果输入N则停止复制。
发表于 2025-5-20 15:52:45 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-5-20 16:07 编辑

回复 1# 剑气如霜

以下代码第2-3行中的的变量值可自定义,第5行中的 /t 3 字段可调整暂停时长,被双引号包裹的提示信息亦可自定义...

  1. @echo off
  2. set "fa=a.bat"
  3. set "db=d:\tmp"
  4. if not exist "%db%\%fa%" exit/b
  5. choice /t 3 /c yn /d y /n /m "是否要替换文件(y/n),3秒后自动替换:"
  6. if %errorlevel% equ 2 exit/b
  7. copy "%fa%" "%db%\%fa%"
  8. pause&exit/b
复制代码
 楼主| 发表于 2025-5-21 09:09:06 | 显示全部楼层
本帖最后由 剑气如霜 于 2025-5-21 09:20 编辑

回复 2# aloha20200628

谢谢2楼少校,代码是有效的。只是我套你格式改不出来要的代码,要不你帮我改一下。想了一下,把条件条件变更了一下,
就是查找一个TXT文件第一行如果不存在TEST内容,就先执行A代码,再执行B代码
如果存在TEST内容,默认3秒后执行A代码,再执行B代码,按N则跳过A代码,直接执行B代码
A代码:
先停止XXX服务,然后替换TXT文件,启动XXX服务
B代码:
命令省略
命令省略
命令省略

下面是具体代码
@echo off
cd /d %~dp0
set /p fa=<%temp%\AAA.txt
for /f "tokens=2 delims= " %%x in ("%fa%") do if %%x neq TEST (
net stop "xxx"
copy /y AAA.txt %temp%
net start "xxx"
)
命令省略 ……
命令省略 ……
命令省略 ……
发表于 2025-5-21 13:14:17 | 显示全部楼层
回复 3# 剑气如霜

以下代码第2-3行变量值可自定义,第6行提示内容可自定义...

  1. @echo off
  2. set "test=123abc456"
  3. set "txt=%temp%\aaa.txt"
  4. set/p "v="<"%txt%" &setlocal enabledelayedexpansion
  5. if "%v%"=="!v:%test%=!" (endlocal&goto:A) else endlocal
  6. choice /t 3 /c yn /d y /n /m "是否先运行 A(y/n),3秒后自动运行A:"
  7. if %errorlevel% equ 2 goto:B
  8. :A
  9. ::写入A段代码...
  10. :B
  11. ::写入B段代码
  12. pause&exit/b
复制代码

评分

参与人数 1技术 +1 收起 理由
剑气如霜 + 1 解决问题

查看全部评分

 楼主| 发表于 2025-5-21 14:06:37 | 显示全部楼层
4楼的代码很好用,就是看起来比较高深,新手表示看不懂,反正用起来没问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:57 , Processed in 0.023281 second(s), 11 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表