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

[文件操作] 拖放文件到批处理后路径发生改变?

[复制链接]
发表于 2010-10-3 23:32:49 | 显示全部楼层 |阅读模式
桌面上有“1.txt” 和test.bat,当把1.txt文件拖到test.bat运行的时候路径为什么会发生改变啊?
  1. @echo off
  2. echo %~1
  3. echo %cd%
  4. pause
复制代码
在论坛搜索了下。发现 523066680版主之前已经提出了这个问题, 不过还是看不懂?麻烦各位大大可以帮忙解释一下吗?先谢谢了!
http://www.bathome.net/viewthread.php?tid=7581&highlight=%CD%CF
发表于 2010-10-3 23:45:26 | 显示全部楼层
把前面的@echo off去掉就能看到效果了
这里的执行路径没有变化 仍然是%userprofile%
echo %~1  显示的是传入文件的完整路径+文件名
echo %cd%  显示的是当前所在目录
发表于 2010-10-3 23:51:42 | 显示全部楼层
cmd默认的执行目录就是%userprofile%
除非手动切换目录了 看这个图做下对比
 楼主| 发表于 2010-10-4 00:12:13 | 显示全部楼层

回复 2楼 的帖子

先谢谢了!
可是test.bat不是在桌面吗?当前路径应该在“C:\Documents and Settings\Administrator\桌面\”的,怎么又会变成C:\Documents and Settings\Administrator?真是百思不得其解啊!
发表于 2010-10-4 11:12:15 | 显示全部楼层
当拖入文件到批处理运行的时候,默认路径是命令提示符的路径,
当系统盘是C盘,默认是C:\Documents and Settings\Administrator。

应该是与cmd调用批处理有关吧...我也不太清楚
发表于 2010-10-4 13:34:07 | 显示全部楼层

回复 4楼 的帖子

我个人的理解是
因为运行TEST.bat平台是CMD,当你运行TEST.bat时,它会把所有的命令引入CMD中,当执行ECHO %CD%时,它是相对独立的,所以也就显示了一进入CMD的目录
 楼主| 发表于 2010-10-4 13:46:36 | 显示全部楼层
好像有一点明白了!谢谢大家了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 09:42 , Processed in 0.017207 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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