win下的ps也很强大,不比移植的linux差很多 |
tools241 发表于 2017-9-16 21:22 现在有转到Windows的阵营了? 话说,我还有转到Linux阵营的想法呢…… |
本帖最后由 tools241 于 2017-9-16 21:37 编辑 nttwqz 发表于 2017-9-16 20:55 除了回到原位, 通常后续会用到 目前所在的 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 19:17 批处理在带有空格的路径下以管理员身份运行时,切换到本身所在目录??? pushd %~dp0\ 一句搞定! |
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 |
邪恶海盗 发表于 2017-9-16 15:23 |
你这个是访问当前目录子目录,这是没问题的 |
邪恶海盗 发表于 2017-9-16 13:38 |
tools241 发表于 2017-9-16 12:20 你能解释下你的批处理吗? 这个和下面的有何不同?
|
是的,所以我才用的命令。 |
807979023 发表于 2017-9-16 14:09 我怀疑他的WinPE里面极有可能就没有explore,所以他这个如果是想通过start打开相关文件夹而不是在脚本里面切换到该文件夹根本就是做不到!! |
本帖最后由 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 |
nttwqz 发表于 2017-9-16 11:40 是运行批处理,不是在PE的CMD下输入命令。 |
本帖最后由 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\ |
@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\ |
本帖最后由 窄口牛 于 2017-9-16 11:45 编辑 cd /d d:\sysiso |
有阴也有阳 发表于 2017-9-16 11:15 哦,忘了,还以为你已经编好批处理了呢 %~d0指的是批处理所在的分区盘符,cmd下面是输入是无效的!只能使用绝对路径! 还有个情况,我才你应该是这种情况!你的PE是原生的,不带explorer.exe,文件夹自然是无法打开的!!!所以该提示并没有错!!!! |
nttwqz 发表于 2017-9-16 11:02 以上2条命令在系统下都可以成功执行,但在PE下的命令提示符中都无法执行。 |
dos里又没有explorer 当然不能打开文件夹咯 |
fjzjk 发表于 2017-9-16 10:59 改成: cd %~d0\sysiso\ 对吗? |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.