- 主题:windows cmd cd一直令人迷惑的设计
不会根据路径自己判断吗为啥跨驱动器一定要/d
比如C:\Users\xx>cd /d d:/data才会改变当前目录为d:\data>
如果没/d的话 C:\Users\xx>cd d:/data 的结果是C:\Users\xx>并没有改变当前目录, 让人感觉这条命令无效,但这个时候如果C:\Users\xx>d: 结果会是d:\data>, 实际上前面那个cd还是有效的...
真是迷一样的设计
--
FROM 123.114.103.*
可惜盖茨现在不具体管事了
【 在 exo 的大作中提到: 】
: 不会根据路径自己判断吗为啥跨驱动器一定要/d
: 比如C:\Users\xx>cd /d d:/data才会改变当前目录为d:\data>
: 如果没/d的话 C:\Users\xx>cd d:/data 的结果是C:\Users\xx>并没有改变当前目录, 让人感觉这条命令无效,但这个时候如果C:\Users\xx>d: 结果会是d:\data>, 实际上前面那个cd还是有效的...
: ...................
--
FROM 141.11.108.*
为了兼容以前的批处理啊。。。随便一改的话,可能有些程序运行就出错了。
【 在 exo 的大作中提到: 】
: 不会根据路径自己判断吗为啥跨驱动器一定要/d
: 比如C:\Users\xx>cd /d d:/data才会改变当前目录为d:\data>
: 如果没/d的话 C:\Users\xx>cd d:/data 的结果是C:\Users\xx>并没有改变当前目录, 让人感觉这条命令无效,但这个时候如果C:\Users\xx>d: 结果会是d:\data>, 实际上前面那个cd还是有效的...
: ...................
--
FROM 113.89.35.*
跟旧有的dos命令保持行为一致吧。
为什么当初这么写,这个估计得探究dos的历史。可能是硬件资源限制,改目录和改驱动
器(分区)是两个不同的部分,用户需要加d选项,才两个动作一起做。微软系的系统没
有单一根目录一说,至少命令行没有。
这个行为,在power shell里面,就被改为类似Linux的,一站式cd。
【 在 exo 的大作中提到: 】
: 不会根据路径自己判断吗为啥跨驱动器一定要/d
: 比如C:\Users\xx>cd /d d:/data才会改变当前目录为d:\data>
: 如果没/d的话 C:\Users\xx>cd d:/data 的结果是C:\Users\xx>并没有改变当前目录, 让人感觉这条命令无效,但这个时候如果C:\Users\xx>d: 结果会是d:\data>, 实际上前面那个cd还是有效的...
: ...................
--
FROM 119.129.53.*
dos时代就这样了
得先d:切换盘符才行
ms已经给你一个/d选项很不错了
【 在 exo 的大作中提到: 】
: 不会根据路径自己判断吗为啥跨驱动器一定要/d
: 比如C:\Users\xx>cd /d d:/data才会改变当前目录为d:\data>
: 如果没/d的话 C:\Users\xx>cd d:/data 的结果是C:\Users\xx>并没有改变当前目录, 让人感觉这条命令无效,但这个时候如果C:\Users\xx>d: 结果会是d:\data>, 实际上前面那个cd还是有效的...
: ...................
--
FROM 218.94.96.*
默认 /d
并不会破坏任何逻辑
【 在 Dazzy 的大作中提到: 】
: 跟旧有的dos命令保持行为一致吧。
: 为什么当初这么写,这个估计得探究dos的历史。可能是硬件资源限制,改目录和改驱动
: 器(分区)是两个不同的部分,用户需要加d选项,才两个动作一起做。微软系的系统没
: ...................
--
FROM 61.48.133.*
我同意前面板友说的,和现有批处理兼容。
现有批处理中,假设当前目录为"c:\windows",按当前行为,命令"cd d:\dir1"不会改
变当前目录。
如果默认 /d,当前目录就变了,接下来的处理也不一样。
不会破坏逻辑,但可能破坏现有批处理。
【 在 Qlala 的大作中提到: 】
: 默认 /d
: 并不会破坏任何逻辑
--
FROM 119.129.53.*
这是为了兼容以前的 bat 脚本,古代只有 a: b: 的时候就是这样的,为了兼容一路留下来了。
你想要的那种效果在 powershell 里。
【 在 exo 的大作中提到: 】
: 不会根据路径自己判断吗为啥跨驱动器一定要/d
: 比如C:\Users\xx>cd /d d:/data才会改变当前目录为d:\data>
: 如果没/d的话 C:\Users\xx>cd d:/data 的结果是C:\Users\xx>并没有改变当前目录, 让人感觉这条命令无效,但这个时候如果C:\Users\xx>d: 结果会是d:\data>, 实际上前面那个cd还是有效的...
: ...................
--
FROM 39.156.11.*
没看明白,那这条没有/d的cd在批处理里是干啥的?
【 在 Dazzy 的大作中提到: 】
: 我同意前面板友说的,和现有批处理兼容。
: 现有批处理中,假设当前目录为"c:\windows",按当前行为,命令"cd d:\dir1"不会改
: 变当前目录。
: ...................
--
修改:exo FROM 123.114.103.*
FROM 123.114.103.*
我只是提个用例,说明不同行为模式下的异同。
人家围绕%drive%和%dir%写两个for循环排列组合切换路径也是可以的。
【 在 exo 的大作中提到: 】
: 没看明白,那这条没有/d的cd在批处理里是干啥的?
--
FROM 119.129.53.*