Board logo

标题: 如何判断是否设置过默认路径 [打印本页]

作者: bjsh     时间: 2007-3-18 05:03    标题: 如何判断是否设置过默认路径

今天遇到这么一个人提了这么一个无理的要求

他源代码如下

  Quote:

@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 ]
作者: RAC     时间: 2007-3-18 05:27
装B
作者: xycoordinate     时间: 2007-3-18 06:38
"1.批处理自动判断是否曾经设置过默认路径"
if define ...
???

"2.这个保存默认路径的123.txt非得保存在默认路径里;"
echo %shezhi%>%shezhi%\123.txt
???
作者: bjsh     时间: 2007-3-18 07:39
算了还是把代码贴上来吧

@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
作者: electronixtar     时间: 2007-3-18 12:41


  Quote:
Originally posted by RAC at 2007-3-18 05:27:
装B

的确是装B,唉,论坛再也没有 Willsort 时代的深入技术讨论了
作者: nzisisco     时间: 2007-3-18 18:09
写这个批处理有什么意义吗 发上来干什么都不知道
不就是显示你的技术高嘛 大把人比你技术高的
作者: bjsh     时间: 2007-3-19 00:47
我想你们是误会我的意思了;

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

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

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

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

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

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

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

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

只是想和大家交流下;

如果我的言语确实容易让大家产生误会;我表示歉意;对不起
作者: everest79     时间: 2007-3-19 02:52

: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

作者: bjsh     时间: 2007-3-19 03:35
ls的代码相当简洁了但是不大符合题目的要求

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

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

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

但是换一个窗口这个环境变量不存在了;所以再次运行还是会询问用户;
作者: everest79     时间: 2007-3-19 14:17
再加这个
http://www.cn-dos.net/forum/view ... hlight=%2Beverest79
作者: yzshde007     时间: 2007-4-26 00:06


  Quote:
Originally posted by electronixtar at 2007-3-17 11:41 PM:




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

如果你觉得简单容易请你写个出来!~如果你觉得你能写出来那请你把他精简化~~~不行``别叫``
作者: digger     时间: 2007-4-26 11:14


  Quote:
Originally posted by yzshde007 at 2007-4-25 11:06 AM:
如果你觉得简单容易请你写个出来!~如果你觉得你能写出来那请你把他精简化~~~不行``别叫``

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