grub4dos的find --set-root结果能不能当字符串用?
find --set-root /xx == (hd0,1) echo 111这样写没用
find --set-root /xx | set abc=
if "%abc%"=="(hd0,1)" echo 111
尝试一下? sunsea 发表于 2020-3-26 13:55
find --set-root /xx | set abc=
if "%abc%"=="(hd0,1)" echo 111
尝试一下?
实测无效...
本帖最后由 sunsea 于 2020-3-26 14:26 编辑
邪恶海盗 发表于 2020-3-26 14:08
实测无效...
既然有--set-root那么检查下%@root%是什么?应该可以用 find --set-root /..... 命令之后显示的 (pd),其前面似乎还有一个空格,不知道是否因此而影响了判断语句的结果。
可以 echo %aaa% ,看看 aaa 的值是什么。
我还在无忧看到了 sunsea 发表于 2020-3-26 14:23
既然有--set-root那么检查下%@root%是什么?应该可以用
这是个好办法,测试成功了... 不点 发表于 2020-3-26 15:07
find --set-root /..... 命令之后显示的 (pd),其前面似乎还有一个空格,不知道是否因此而影响了判断语句的 ...
奇怪,find --set-root /xxx和find --set-root/xxx结果不一样,是命令对空格敏感还是BUG???
本帖最后由 不点 于 2020-3-26 17:38 编辑
邪恶海盗 发表于 2020-3-26 17:03
奇怪,find --set-root /xxx和find --set-root/xxx结果不一样,是命令对空格敏感还是BUG???
空格起着语法分隔的作用。不带空格,肯定是不对的。如果不带空格,比如说就像这样:find --set-root/aaa/bbb/ccc/ddd,那它实际上就等价于 find (后面没有任何参数的情况),这当然不符合你的意图。所以一定要有空格才行。Linux 以及 Windows 的批处理,在很多情况下都是需要用空格来分隔的。
前面的 find 先输出了一行 "......", 所以,aaa 的值就是 ...... 后续的 (pd) 没包括进去。也许这就是 set aaa 命令的正常执行结果了。
如果不合乎你的要求,或者你认为有 bug,你可以向开发者提出来,看看开发者是什么看法。
不点 发表于 2020-3-26 17:35
空格起着语法分隔的作用。不带空格,肯定是不对的。如果不带空格,比如说就像这样:find --set-root/aaa/ ...
关键是带空格的时候就输出的有那一行......不知道什么情况... 这个很好理解啊 网络的读取进度条 网络的读取进度条 chenall 发表于 2020-3-26 20:02
网络的读取进度条
了解了...
刚刚想起来,我不带空格运行find --set-root/xxx相当于只执行了root命令,所以返回了驱动器号而没有进度条... 美好时光同分享。
页:
[1]