中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-14 17:19
47,813 主题排行 / 349,901 发帖 / 今日 3 篇 / 48,257 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 老病新药:非中文环境下进入中文目录
可打印版本  4,779 / 35
第16楼 luxuriant1770 发表于 2005-09-16 20:20
新手上路 发帖 3 积分 4 来自 能容納我的地方
難題啊,我一直沒找到答案.............
第17楼 brglng 发表于 2005-09-16 23:31
银牌会员 发帖 466 积分 1,200 来自 上海
如果可以用外部工具的话用一个mousclip就解决问题了
第18楼 xjmxjm1234 发表于 2006-04-18 21:58
中级用户 发帖 166 积分 361
原来是围绕着 dir 命令来的啊
问题6:
d:
cd \
copy con enter.bat
cd (键入Ctrl+Z或者键入“F6”键,不含括号)
dir ????2 /ad /b>>enter.bat
enter

[ Last edited by xjmxjm1234 on 2006-4-19 at 08:10 ]
第19楼 xjmxjm1234 发表于 2006-04-18 22:19
中级用户 发帖 166 积分 361
至于问题4和5:
用了 dir/s/b test.dat 但总是带test.dat
用了 truename 但总是在根目录
好难,公布答案吧!
第20楼 xjmxjm1234 发表于 2006-04-18 22:27
中级用户 发帖 166 积分 361
资料:所有内部命令

Internal (内部命令): ( 注:这些是msdos7.X中支持的内部命令)
Break 设置对键盘中断某程序执行的命令的检查。即对ctrl -C 的检查。
Call 呼叫另一个批处理,或可执行文件,或command
CD / ChDir 进入目录(退出目录)
CHCP 修改或显示当前的代码页
Cls 清屏
Copy 复制,拷贝
CTTY 将控制台输入和输出改向其它设备
Date 显示或设置系统日期
Del / Erase 删除文件
Dir 列出文件和目录列表
Echo 显示控制开关。
Exit 退出command环境。(该command环境是在DOS提示符中执行另一个新的command的拷贝而创建的,也叫dos SHELL?)
For 用于运行一指定命令或一系列的命令. 通常用在批处理文件中,但也能用于命令提示符后。
GoTo 转向语句
If 条件语句
LfnFor 当运行FOR命令时支持长文件名。
Lock 锁定对磁盘的直接读取。
MD / MkDir 创建目录
Path 路径
Pause 暂停
Prompt 设置提示符格式
RD / RmDir 删除目录
Rem & :: 注释
Ren / Rename 改名,重命名
Set 设置
Shift 位移,在批处理文件中用作改变可替换参数的位置。
Time 显示和设置时间
Truename 显示长文件名格式和8.3格式之间的对应关系,或subst命令创建的虚拟盘
Type 在屏幕上显示文本文件的内容
Unlock 解锁对磁盘的直接读取
Ver 显示msdos的版本号
Verify 校验。以保证写入磁盘的内容可读。
Vol 显示磁盘的卷标和序列号。
第21楼 willsort 发表于 2006-04-18 23:11
元老会员 发帖 1,512 积分 4,432
Re xjmxjm1234:

兄对第6题存在误解,题中目录名数字均为全角,在非中文环境下无法输入。

现公布第4题我的解答,主要利用了命令行的交互特性,需要用户控制。如果在批处理中,且不使用外部命令,则需要使用复杂的技巧来实现判断选择,还没有考虑得很完善。


d:
cd \
dir /ad /on /p /s /w
(用户交互:观察命令输出中test.dat位于哪个目录中)
copy con enter.bat
cd (键入Ctrl+Z或者键入“F6”键,不含括号)
(如果test.dat在第一个目录,则 dir /ad /b /on>>enter.bat)
(如果test.dat在第二个目录,则 dir /ad /b /o-n>>enter.bat)
enter


[ Last edited by willsort on 2006-4-19 at 17:56 ]
第22楼 zhangxue 发表于 2006-04-19 09:47
初级用户 发帖 82 积分 183
有点不明白为何在根目录就可以,在第二层目录就失败。
第23楼 willsort 发表于 2006-04-19 14:07
元老会员 发帖 1,512 积分 4,432
Re zhangxue:

请注意解答中的第二行"cd \",它是将当前目录切换为题目中的测试目录——根目录,如果你的测试目录在子目录下,则需要用 cd subdir 之类的语句进行切换。
第24楼 zhangxue 发表于 2006-04-19 14:41
初级用户 发帖 82 积分 183
我并没有cd\,图1,2是在根目录测试,有两个目录:(1)System Volume Information;(2)新建文件夹。测试成功。

图三是在test目录进行测试,里面只有一个目录:新建文件夹。测试失败。

[ Last edited by zhangxue on 2006-4-19 at 14:45 ]

附件
Snap1.jpg (28.91 KiB)
Snap2.jpg (16.62 KiB)
Snap3.jpg (28.5 KiB)
第25楼 zhangxue 发表于 2006-04-19 14:48
初级用户 发帖 82 积分 183
简单的说就是在根目录下,可以用cd ?????进入名为“新建文件夹”的目录。
但是却不能在test目录中用cd ?????来进入名为"新建文件夹"的目录。
第26楼 willsort 发表于 2006-04-19 15:00
元老会员 发帖 1,512 积分 4,432
Re zhangxue:

已经证实,以上的我的一系列解答,在NT CMD环境下无效,感谢 zhangxue 兄的提醒。

其原因是因为,NTCMD将无法识别其编码的字符串均转换成为了由问号组成的字符串,这导致字符串的内码发生变化,当然就无从进入相应的目录了。

在根目录下的测试成功,是因为NTCMD在根目录下使用类似cd ?????的命令形式时,会将?????作为通配符进行匹配,由此导致cd ?????会进入第一个匹配的目录中,即第一个含有5个或5个以内字符的子目录。而在其他各级子目录下NTCMD无此特性。

另外,建议zhangxue兄在转贴命令行输出内容时,仅复制和粘贴输出的文字信息,以节省论坛有限的附件空间资源。复制方法,在命令行窗口中,点击右键,选择“标记”,然后拖动鼠标选择复制区域,选定后按回车即复制完成,然后再粘贴到论坛帖中即可。

[ Last edited by willsort on 2006-4-19 at 15:05 ]
第27楼 xjmxjm1234 发表于 2006-04-19 17:45
中级用户 发帖 166 积分 361
真的很难啊,是不是要用 shift 命令啊,我不大会哦
在 cmd.exe 里 ? 表示一个字符(一个汉字)
而在 dos 里 ? 表示一个字节哦(半个汉字) 不一样的
第28楼 zereyzerey 发表于 2006-04-25 20:16
初级用户 发帖 20 积分 43 来自 gd
只要有edit.com就可以
我以前常遇到这样的问题,如果你要进C盘某一中文目录。你就先要进其他盘。只要不是C盘就可以了。然后运行edit然后在[open]菜单下打开你要进的中文目录。虽然是乱码,但是不是可以进。见到你想要的文件后(例如ghost.exe)。再按[Esc]键退出,再退出edit.com,在提示符下再打 c:[回车],你就会发现进了刚才用edit.com浏览的中文目录了。虽然有点复杂,但是可行性是100%。你们可以试试。
第29楼 kcdsw 发表于 2006-04-27 19:50
中级用户 发帖 179 积分 404
chcp ??

活动的代码页?
第30楼 xjmxjm1234 发表于 2006-04-28 22:02
中级用户 发帖 166 积分 361
可是只用内部命令就很难了.
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023