一个打开文件夹的bat命令在系统中能够正常执行,在主板DOS中不能正常执行。
一个打开文件夹的bat命令在系统中能够正常执行,在主板DOS中不能正常执行。打开bat所在驱动器里面的sysiso文件夹:
start %~d0\sysiso\
在主板DOS中运行的报错如下:
而在系统中则能正常执行:
请高手指教,谢谢!!! dos里应该用cd来进入文件夹吧 不要动不动就DOS,这个应该是PE下的命令提示符。
可以尝试
start "" %~d0\sysiso\
explorer.exe %~d0\sysiso\ fjzjk 发表于 2017-9-16 10:59
dos里应该用cd来进入文件夹吧
改成:
cd %~d0\sysiso\
对吗?
dos里又没有explorer 当然不能打开文件夹咯 nttwqz 发表于 2017-9-16 11:02
不要动不动就DOS,这个应该是PE下的命令提示符。
可以尝试
以上2条命令在系统下都可以成功执行,但在PE下的命令提示符中都无法执行。 有阴也有阳 发表于 2017-9-16 11:15
以上2条命令在系统下都可以成功执行,但在PE下的命令提示符中都无法执行。
哦,忘了,还以为你已经编好批处理了呢
%~d0指的是批处理所在的分区盘符,cmd下面是输入是无效的!只能使用绝对路径!
还有个情况,我才你应该是这种情况!你的PE是原生的,不带explorer.exe,文件夹自然是无法打开的!!!所以该提示并没有错!!!! 本帖最后由 窄口牛 于 2017-9-16 11:45 编辑
cd /d d:\sysiso @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\ @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\ 本帖最后由 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\ tools241 发表于 2017-9-16 12:20
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
谢谢!还是相同的报错:
nttwqz 发表于 2017-9-16 11:40
哦,忘了,还以为你已经编好批处理了呢
%~d0指的是批处理所在的分区盘符,cmd下面是输入是无效的!只 ...
是运行批处理,不是在PE的CMD下输入命令。 本帖最后由 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 不能直接从当前文件夹访问其它文件夹,必需先切换到目标文件夹... 换个pe吧,我这里03 7 8 都能运行批处理: start %~d0\sysiso
807979023 发表于 2017-9-16 14:09
换个pe吧,我这里03 7 8 都能运行批处理: start %~d0\sysiso
我怀疑他的WinPE里面极有可能就没有explore,所以他这个如果是想通过start打开相关文件夹而不是在脚本里面切换到该文件夹根本就是做不到!! 是的,所以我才用的命令。 tools241 发表于 2017-9-16 12:20
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
你能解释下你的批处理吗?
这个和下面的有何不同?
@explorer.exe %~d0 邪恶海盗 发表于 2017-9-16 13:38
不能直接从当前文件夹访问其它文件夹,必需先切换到目标文件夹...
nttwqz 发表于 2017-9-16 14:56
你这个是访问当前目录子目录,这是没问题的 邪恶海盗 发表于 2017-9-16 15:23
你这个是访问当前目录子目录,这是没问题的
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
tools241 发表于 2017-9-16 19:17
@echo off
SET Var0=%0
IF '^%Var0:~0,1%'=='^"' SET Var0=%Var0:~1,-1%
批处理在带有空格的路径下以管理员身份运行时,切换到本身所在目录???
pushd %~dp0\
一句搞定! 本帖最后由 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
tools241 发表于 2017-9-16 21:22
除了回到原位, 通常后续会用到 目前所在的 drive 及 directory, 或完整的 PATH,
所以写法上有所不同.
...
现在有转到Windows的阵营了?
话说,我还有转到Linux阵营的想法呢…… win下的ps也很强大,不比移植的linux差很多
页:
[1]