中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 18:56
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何判断是否设置过默认路径
楼 主 如何判断是否设置过默认路径 发表于 2007-03-18 05:03 ·  中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
UID 75212
性别 男
状态 离线
今天遇到这么一个人提了这么一个无理的要求

他源代码如下

@echo off
title 设置默认路径
:shezhi
set /p shezhi=请输入你的设置路径:
echo %shezhi%>123.txt
cls
echo 设置完毕,默认路径是:
echo %shezhi%
echo 按任意键进入主题
pause>nul
goto zhixing
:zhixing
set /p wo=<123.txt
echo 您想建立什么文件呢,请输入它的文件名
echo 我们将把它保存在你设置的默认目录里。
set /p wenjian=请输入文件名以及后缀(mybat.bat):
echo >%wenjian%
echo 测试完成。
pause>nul


后来他提了个要求就是
1.批处理自动判断是否曾经设置过默认路径
2.这个保存默认路径的123.txt非得保存在默认路径里;

大家给个代码.

本人已写完;打算在五楼公布;
大家先写写试试......

[ Last edited by namejm on 2007-3-20 at 12:52 PM ]
2 发表于 2007-03-18 05:27 ·  中国 云南 昆明 电信
初级用户
积分 35
发帖 15
注册 2006-10-09 00:42
UID 64980
状态 离线
装B
3 发表于 2007-03-18 06:38 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
UID 79596
性别 男
来自 安徽
状态 离线
"1.批处理自动判断是否曾经设置过默认路径"
if define ...
???

"2.这个保存默认路径的123.txt非得保存在默认路径里;"
echo %shezhi%>%shezhi%\123.txt
???
4 发表于 2007-03-18 07:39 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
UID 75212
性别 男
状态 离线
算了还是把代码贴上来吧

@echo off
for /f "skip=31 tokens=2 delims= " %%a in (%~nx0) do set setting=%%a
set setting >nul 2>%tmp%\t_m_p.txt
find "没有定义" %tmp%\t_m_p.txt >>nul
if not errorlevel 1 goto next
goto choice
:choice
echo 1.使用默认路径 %setting%
echo 2.重新设置默认路径
set /p m_choice=请选择:
if "%m_choice%"=="1" goto setting
if "%m_choice%"=="2" goto next
echo 无效选择 请重新输入;
goto choice
:next
title 设置默认路径yo
set /p setting=请输入你的设置路径,最后请不要加\:
echo :: %setting% >>%~nx0
echo 设置完毕,默认路径是:
echo %setting%
echo 按任意键进入主题
pause>nul
goto setting
:setting
del %tmp%\t_m_p.txt >>nul
echo 您想建立什么文件呢,请输入它的文件名
echo 我们将把它保存在你设置的默认目录里。
set /p file=请输入文件名以及后缀(mybat.bat):
echo >%setting%\%file%
echo 测试完成。
pause>nul
5 发表于 2007-03-18 12:41 ·  中国 四川 成都 联通
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
Originally posted by RAC at 2007-3-18 05:27:
装B




的确是装B,唉,论坛再也没有 Willsort 时代的深入技术讨论了

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
6 发表于 2007-03-18 18:09 ·  新西兰
初级用户
积分 107
发帖 47
注册 2007-03-03 03:12
UID 80618
性别 男
状态 离线
写这个批处理有什么意义吗 发上来干什么都不知道
不就是显示你的技术高嘛 大把人比你技术高的
7 发表于 2007-03-19 00:47 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
UID 75212
性别 男
状态 离线
我想你们是误会我的意思了;

本来我以为这是个简单的问题;但是真正写下去才知道会遇到问题;

在写这个的过程中也学到不少东西;

在一开始没把自己的代码贴上来;是因为一来怕我的代码影响大家的思维;

二是想让大家先写写;把代码发上来大家交流一下;

但是没想到却被误会为炫耀技术;我感觉特别委屈;

我是刚刚接触p的; 我注册也没多久;

在这里我一直是抱着学习的态度来的;

自己也没什么技术可言更提不上炫耀了;

只是想和大家交流下;

如果我的言语确实容易让大家产生误会;我表示歉意;对不起
8 发表于 2007-03-19 02:52 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
UID 74552
性别 男
状态 离线

:top
if defined userpath (
if exist %userpath%\ (
goto :create) else (md %userpath%)
) else (set /p userpath=userpath:)
goto top

:create
set /p filename=filename:
cd.>%userpath%\%filename%
explorer /select, %userpath%\%filename%
pause

9 发表于 2007-03-19 03:35 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
UID 75212
性别 男
状态 离线
ls的代码相当简洁了但是不大符合题目的要求

如果换一个窗口的话;又要提醒用户输入默认路径;

题目的要求第二次运行时;已知默认路径而不再询问用户;

可能ls的在同一个cmd窗口下;因为第一次运行设置了环境变量所以第二次运行时似乎同再询问用户;

但是换一个窗口这个环境变量不存在了;所以再次运行还是会询问用户;
10 发表于 2007-03-19 14:17 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
UID 74552
性别 男
状态 离线
11 发表于 2007-04-26 00:06 ·  中国 湖南 长沙 电信
新手上路
积分 5
发帖 3
注册 2007-03-25 01:25
UID 82821
性别 男
状态 离线
Originally posted by electronixtar at 2007-3-17 11:41 PM:




的确是装B,唉,论坛再也没有 Willsort 时代的深入技术讨论了



如果你觉得简单容易请你写个出来!~如果你觉得你能写出来那请你把他精简化~~~不行``别叫``
12 发表于 2007-04-26 11:14 ·  中国 广东 电信
初级用户
游荡的孤魂
积分 79
发帖 29
注册 2007-04-02 11:08
UID 83714
性别 男
来自 湖南
状态 离线
Originally posted by yzshde007 at 2007-4-25 11:06 AM:
如果你觉得简单容易请你写个出来!~如果你觉得你能写出来那请你把他精简化~~~不行``别叫``

  不知 electronixtar 为何人者无所谓,不过在这里讨论还是心平气和一点的好。
论坛跳转: