无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 7367|回复: 26
打印 上一主题 下一主题

[求助] 一个打开文件夹的bat命令在系统中能够正常执行,在主板DOS中不能正常执行。

[复制链接]
跳转到指定楼层
1#
发表于 2017-9-16 10:51:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
        一个打开文件夹的bat命令在系统中能够正常执行,在主板DOS中不能正常执行。

        打开bat所在驱动器里面的sysiso文件夹:

start %~d0\sysiso\


        在主板DOS中运行的报错如下:




        而在系统中则能正常执行:




        请高手指教,谢谢!!!
2#
发表于 2017-9-16 10:59:14 | 只看该作者
dos里应该用cd来进入文件夹吧

点评

改成: cd %~d0\sysiso\ 对吗?  详情 回复 发表于 2017-9-16 11:03
回复

使用道具 举报

3#
发表于 2017-9-16 11:02:48 | 只看该作者
不要动不动就DOS,这个应该是PE下的命令提示符。

可以尝试

start "" %~d0\sysiso\

explorer.exe %~d0\sysiso\

点评

以上2条命令在系统下都可以成功执行,但在PE下的命令提示符中都无法执行。  详情 回复 发表于 2017-9-16 11:15
回复

使用道具 举报

4#
 楼主| 发表于 2017-9-16 11:03:07 | 只看该作者
fjzjk 发表于 2017-9-16 10:59
dos里应该用cd来进入文件夹吧

改成:

cd %~d0\sysiso\


对吗?
回复

使用道具 举报

5#
发表于 2017-9-16 11:09:25 | 只看该作者
dos里又没有explorer 当然不能打开文件夹咯
回复

使用道具 举报

6#
 楼主| 发表于 2017-9-16 11:15:57 | 只看该作者
nttwqz 发表于 2017-9-16 11:02
不要动不动就DOS,这个应该是PE下的命令提示符。

可以尝试

        以上2条命令在系统下都可以成功执行,但在PE下的命令提示符中都无法执行。

点评

哦,忘了,还以为你已经编好批处理了呢 %~d0指的是批处理所在的分区盘符,cmd下面是输入是无效的!只能使用绝对路径! 还有个情况,我才你应该是这种情况!你的PE是原生的,不带explorer.exe,文件夹自然是无  详情 回复 发表于 2017-9-16 11:40
回复

使用道具 举报

7#
发表于 2017-9-16 11:40:39 | 只看该作者
有阴也有阳 发表于 2017-9-16 11:15
以上2条命令在系统下都可以成功执行,但在PE下的命令提示符中都无法执行。

哦,忘了,还以为你已经编好批处理了呢

%~d0指的是批处理所在的分区盘符,cmd下面是输入是无效的!只能使用绝对路径!

还有个情况,我才你应该是这种情况!你的PE是原生的,不带explorer.exe,文件夹自然是无法打开的!!!所以该提示并没有错!!!!

点评

是运行批处理,不是在PE的CMD下输入命令。  详情 回复 发表于 2017-9-16 12:43
回复

使用道具 举报

8#
发表于 2017-9-16 11:44:13 来自手机 | 只看该作者
本帖最后由 窄口牛 于 2017-9-16 11:45 编辑

cd /d d:\sysiso
回复

使用道具 举报

9#
发表于 2017-9-16 12:18:25 | 只看该作者
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
FOR /f "delims=" %%I in ("%Var0%") do Set TP=%%~dpI
SET TP=%TP:~0,-1%\
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set drive=%%i:
%drive%
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set directory=%%j
cd %directory%


start %~d0\sysiso\
回复

使用道具 举报

10#
发表于 2017-9-16 12:18:35 | 只看该作者
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
FOR /f "delims=" %%I in ("%Var0%") do Set TP=%%~dpI
SET TP=%TP:~0,-1%\
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set drive=%%i:
%drive%
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set directory=%%j
cd %directory%


start %~d0\sysiso\
回复

使用道具 举报

11#
发表于 2017-9-16 12:20:41 | 只看该作者
本帖最后由 tools241 于 2017-9-16 19:13 编辑

@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
FOR /f "delims=" %%I in ("%Var0%") do Set TP=%%~dpI
SET TP=%TP:~0,-1%\
REM 上列4行的写法 "不论资料夹是否含空格" 皆适用
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set drive=%%i:
%drive%
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set directory=%%j
cd %directory%
REM 上列4行的写法在Windows以系统管理员身份执行时,可自 %WinDir%\sys????? 回到程式本身的正确位置

start %drive%\sysiso\

点评

你能解释下你的批处理吗? 这个和下面的有何不同?  详情 回复 发表于 2017-9-16 14:47
谢谢!还是相同的报错: [attachimg]353415[/attachimg]  详情 回复 发表于 2017-9-16 12:42
回复

使用道具 举报

12#
 楼主| 发表于 2017-9-16 12:42:32 | 只看该作者
tools241 发表于 2017-9-16 12:20
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%

        谢谢!还是相同的报错:

点评

改成 cd %drive%\sysiso  详情 回复 发表于 2017-9-16 12:45
回复

使用道具 举报

13#
 楼主| 发表于 2017-9-16 12:43:54 | 只看该作者
nttwqz 发表于 2017-9-16 11:40
哦,忘了,还以为你已经编好批处理了呢

%~d0指的是批处理所在的分区盘符,cmd下面是输入是无效的!只 ...

是运行批处理,不是在PE的CMD下输入命令。
回复

使用道具 举报

14#
发表于 2017-9-16 12:45:25 | 只看该作者
本帖最后由 tools241 于 2017-9-16 19:13 编辑
有阴也有阳 发表于 2017-9-16 12:42
谢谢!还是相同的报错:

start 后面通常是 *.exe
改成


@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
FOR /f "delims=" %%I in ("%Var0%") do Set TP=%%~dpI
SET TP=%TP:~0,-1%\
REM 上列4行的写法 "不论资料夹是否含空格" 皆适用
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set drive=%%i:
%drive%
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set directory=%%j
cd %directory%
REM 上列4行的写法在Windows以系统管理员身份执行时,可自 %WinDir%\sys????? 回到程式本身的正确位置

cd %drive%\sysiso
回复

使用道具 举报

15#
发表于 2017-9-16 13:38:21 | 只看该作者
不能直接从当前文件夹访问其它文件夹,必需先切换到目标文件夹...

点评

[attachimg]353438[/attachimg]  详情 回复 发表于 2017-9-16 14:56
回复

使用道具 举报

16#
发表于 2017-9-16 14:09:09 | 只看该作者
换个pe吧,我这里03 7 8 都能运行批处理: start %~d0\sysiso


03pe.jpg (32.46 KB, 下载次数: 114)

03pe

03pe

7pe.jpg (31.96 KB, 下载次数: 123)

7pe

7pe

8pe.jpg (33.84 KB, 下载次数: 92)

8pe

8pe

点评

我怀疑他的WinPE里面极有可能就没有explore,所以他这个如果是想通过start打开相关文件夹而不是在脚本里面切换到该文件夹根本就是做不到!!  详情 回复 发表于 2017-9-16 14:35
回复

使用道具 举报

17#
发表于 2017-9-16 14:35:36 来自手机 | 只看该作者
807979023 发表于 2017-9-16 14:09
换个pe吧,我这里03 7 8 都能运行批处理: start %~d0\sysiso

我怀疑他的WinPE里面极有可能就没有explore,所以他这个如果是想通过start打开相关文件夹而不是在脚本里面切换到该文件夹根本就是做不到!!
回复

使用道具 举报

18#
发表于 2017-9-16 14:47:29 来自手机 | 只看该作者
是的,所以我才用的命令。
回复

使用道具 举报

19#
发表于 2017-9-16 14:47:58 | 只看该作者
tools241 发表于 2017-9-16 12:20
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%

你能解释下你的批处理吗?

这个和下面的有何不同?
  1. @explorer.exe %~d0
复制代码

点评

@echo off SET Var0=%0 IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1% FOR /f "delims=" %%I in ("%Var0%") do Set TP=%%~dpI SET TP=%TP:~0,-1%\ REM 上列4行的写法 "不论资料夹是否含空格" 皆适用 for /f  详情 回复 发表于 2017-9-16 19:17
回复

使用道具 举报

20#
发表于 2017-9-16 14:56:14 | 只看该作者
邪恶海盗 发表于 2017-9-16 13:38
不能直接从当前文件夹访问其它文件夹,必需先切换到目标文件夹...

点评

你这个是访问当前目录子目录,这是没问题的  详情 回复 发表于 2017-9-16 15:23
回复

使用道具 举报

21#
发表于 2017-9-16 15:23:47 | 只看该作者

你这个是访问当前目录子目录,这是没问题的

点评

[attachimg]353440[/attachimg]  详情 回复 发表于 2017-9-16 16:08
回复

使用道具 举报

22#
发表于 2017-9-16 16:08:47 | 只看该作者
邪恶海盗 发表于 2017-9-16 15:23
你这个是访问当前目录子目录,这是没问题的

回复

使用道具 举报

23#
发表于 2017-9-16 19:17:57 | 只看该作者
nttwqz 发表于 2017-9-16 14:47
你能解释下你的批处理吗?

@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
FOR /f "delims=" %%I in ("%Var0%") do Set TP=%%~dpI
SET TP=%TP:~0,-1%\
REM 上列4行的写法 "不论文件夹是否含空格" 皆适用
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set drive=%%i:
%drive%
for /f "tokens=1,2 delims=:" %%i in ("%TP%") do set directory=%%j
cd %directory%
REM 上列4行的写法在Windows以系统管理员身份执行时,可自 %WinDir%\sys????? 回到程式本身的正确位置

____________________________________

本人打包了很多工具, 含添加到PE中的工具皆采用上列的写法以保万无一失
效率极致!  简体/繁体 10PE16199x64 10PE15063x86 10PE15063x64  影音上网版 ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=385866

点评

批处理在带有空格的路径下以管理员身份运行时,切换到本身所在目录??? pushd %~dp0\ 一句搞定!  详情 回复 发表于 2017-9-16 20:55
回复

使用道具 举报

24#
发表于 2017-9-16 20:55:53 | 只看该作者
tools241 发表于 2017-9-16 19:17
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%

批处理在带有空格的路径下以管理员身份运行时,切换到本身所在目录???

pushd %~dp0\

一句搞定!

点评

除了回到原位, 通常后续会用到 目前所在的 drive 及 directory, 或完整的 PATH, 所以写法上有所不同.  详情 回复 发表于 2017-9-16 21:22
回复

使用道具 举报

25#
发表于 2017-9-16 21:22:37 | 只看该作者
本帖最后由 tools241 于 2017-9-16 21:37 编辑
nttwqz 发表于 2017-9-16 20:55
批处理在带有空格的路径下以管理员身份运行时,切换到本身所在目录???

pushd %~dp0\

除了回到原位, 通常后续会用到 目前所在的 drive 及 directory, 或完整的 PATH,
所以写法上有所不同.

看得出来大大对批处理很有研究, 本人早期使用Unix,
所以有些批处理的思考模式倾向使用( 由Linux 移植到Windows 的 ) "仿Linux/Unix" 命令 来解决,
有兴趣可参考:
如何利用 仿unix/linux命令 sed 一次替换文字中的 "某些相似性的字串" ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=383106



点评

现在有转到Windows的阵营了? 话说,我还有转到Linux阵营的想法呢……  详情 回复 发表于 2017-9-17 00:20
回复

使用道具 举报

26#
发表于 2017-9-17 00:20:12 | 只看该作者
tools241 发表于 2017-9-16 21:22
除了回到原位, 通常后续会用到 目前所在的 drive 及 directory, 或完整的 PATH,
所以写法上有所不同.

...

现在有转到Windows的阵营了?

话说,我还有转到Linux阵营的想法呢……
回复

使用道具 举报

27#
发表于 2017-9-17 07:28:03 来自手机 | 只看该作者
win下的ps也很强大,不比移植的linux差很多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-27 23:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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