找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 481|回复: 19

[求助] DOS命令:怎么将当前批文件所在目录切换到另一目录,为当前目录?

[复制链接]
发表于 2026-5-5 18:35:51 | 显示全部楼层 |阅读模式
本帖最后由 leaguer 于 2026-5-5 18:44 编辑

如题,比如,我双击执行 c:\1 文件夹下的 "666.bat" 文件,"666.bat"文件的内容是:
Xcopy  "777.bat" d:\2  /I /E /Y

然后在"666.bat"命令中指定 d:\2 设置为当前目录?到 d:\2 目录去执行  "777.bat"(因为该文件中有 %CD% 代码,不能从其它当前的路径中指定执行这个文件)
去执行 "777.bat"文件前“kill”自身"666.bat"文件?

请教各位大佬怎么写"666.bat" 中的代码呢?
发表于 2026-5-5 18:51:01 | 显示全部楼层
看着有点乱,一般保存路径都是使用的借用堆栈概念的pushd和popd命令。
比如你当前在A目录,要切到B目录里执行B目录内命令,可以
PUSHD B,然后运行命令,然后POPD返回A目录。
你说的KILL 666.bat啥意思,结束进程还是删除啊?为什么要结束进程或删除啊,这些和切换目录没啥关系吧,你都执行777.bat去了。
回复

使用道具 举报

发表于 2026-5-5 18:57:14 | 显示全部楼层
cd /d d:\2

是不是这个

点评

”这个好像切换不过去,“门口“大佬:好像可行?我多测试一下  详情 回复 发表于 2026-5-5 19:10
回复

使用道具 举报

 楼主| 发表于 2026-5-5 19:00:01 | 显示全部楼层
本帖最后由 leaguer 于 2026-5-5 19:06 编辑

确实有点乱,我也感觉乱

这么说吧:
要把 C:\1 下的所有文件复制到 D:\2 目录下,然后到 D:\2 目录下去执行批处理,并且将 C:\1 自身文件全部删除

复制完后,就达目的了,就将 C:\1 自身文件全部删除,连自身批文件

点评

怎么感觉有点不对劲  详情 回复 发表于 2026-5-6 08:04
回复

使用道具 举报

 楼主| 发表于 2026-5-5 19:10:08 | 显示全部楼层
yyz219195888 发表于 2026-5-5 18:57
cd /d d:\2

是不是这个

这个好像切换不过去,“门口“大佬:
PUSHD B,然后运行命令,然后POPD返回A目录

好像可行?我多测试一下

点评

应该可以的  详情 回复 发表于 2026-5-5 19:20
回复

使用道具 举报

发表于 2026-5-5 19:13:25 | 显示全部楼层
我问了豆包,它这样理解的
你的核心需求(我已精准提炼)
双击运行 c:\1\666.bat
把同目录下的 777.bat 复制到 d:\2
切换当前目录到 d:\2(因为 777.bat 里用了 % CD%,必须在目标目录执行)
在 d:\2 里执行 777.bat
执行前自动删除自身 666.bat

最终可用代码(直接复制到 666.bat 即可)

  1. @echo off
  2. :: 复制 777.bat 到 d:\2
  3. xcopy "%~dp0777.bat" "d:\2\" /I /E /Y

  4. :: 切换到 d:\2 目录(关键:保证 %CD% 正确)
  5. cd /d "d:\2"

  6. :: 启动 777.bat 并 彻底退出 666.bat(实现自删除)
  7. start "" "777.bat"
  8. del "%~f0" & exit
复制代码
回复

使用道具 举报

发表于 2026-5-5 19:17:53 | 显示全部楼层
楼上应该可以满足要求
回复

使用道具 举报

发表于 2026-5-5 19:20:37 | 显示全部楼层
leaguer 发表于 2026-5-5 19:10
这个好像切换不过去,“门口“大佬:
好像可行?我多测试一下

应该可以的
回复

使用道具 举报

发表于 2026-5-5 20:09:11 | 显示全部楼层
666.bat脚本里加上下面三行即可。
  1. pushd "d:\2"
  2. start "" "777.bat"
  3. del "%~f0"
复制代码
第一行 推进工作目录到d:\2
第二行 另外运行777.bat(因为工作目录已改变,所以可以不用路径,默认是d:\2
第三行 删除666.bat自身脚本文件
回复

使用道具 举报

发表于 2026-5-5 20:21:30 | 显示全部楼层
留印学习,谢谢分享。
回复

使用道具 举报

发表于 2026-5-5 20:57:56 | 显示全部楼层
  1. @echo off
  2. setlocal

  3. :: 1. 复制 777.bat 到 d:\2
  4. xcopy "%~dp0777.bat" "d:\2\" /I /E /Y

  5. :: 2. 切换到 d:\2 作为当前目录
  6. cd /d "d:\2"

  7. :: 3. 后台执行 777.bat(不阻塞)
  8. start "" "d:\2\777.bat"

  9. :: 4. 立即删除自身 666.bat 并退出
  10. del "%~f0" & exit
复制代码



回复

使用道具 举报

发表于 2026-5-5 21:08:19 | 显示全部楼层
帮顶,批处理有时候确实会用到
回复

使用道具 举报

发表于 2026-5-5 21:09:34 | 显示全部楼层
楼上的应该完美了
回复

使用道具 举报

发表于 2026-5-5 21:18:16 | 显示全部楼层
楼上的应该完美了
回复

使用道具 举报

 楼主| 发表于 2026-5-5 21:18:33 | 显示全部楼层
感谢上面各位大佬的相助!!
经测试,关键代码:
PUSHD B
cd /d "d:\2"
del "%~f0" & exit

可行!
再次感谢各位大佬!
回复

使用道具 举报

发表于 2026-5-5 21:51:32 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2026-5-6 07:14:52 | 显示全部楼层
绝对路径指定运行不行么?
回复

使用道具 举报

发表于 2026-5-6 07:25:34 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2026-5-6 08:04:34 | 显示全部楼层
leaguer 发表于 2026-5-5 19:00
确实有点乱,我也感觉乱

这么说吧:

怎么感觉有点不对劲

点评

发现哪儿有问题了吗?  详情 回复 发表于 2026-5-6 11:26
回复

使用道具 举报

 楼主| 发表于 2026-5-6 11:26:14 | 显示全部楼层
nghr 发表于 2026-5-6 08:04
怎么感觉有点不对劲

发现哪儿有问题了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-5-14 05:27

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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