无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4968|回复: 17
打印 上一主题 下一主题

[求助] 麻烦看下这个批处理错在哪里

[复制链接]
跳转到指定楼层
1#
发表于 2017-10-25 13:29:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
批处理:
@echo off
cd /d %~dp0

For /f "tokens=1 delims= " %%b in ('"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set m=%%b)
echo 验证得到MD5值 %m%
echo.

For /f "tokens=2 delims= " %%b in ('"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set x=%%b)
echo 验证得到希哈值 %x%
echo.

运行后结果报错如下:

'D:\实用工具集合\PEWIN8和WIN7PE的修改\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
验证得到MD5值

'D:\实用工具集合\PEWIN8和WIN7PE的修改\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
验证得到希哈值

将for命令中"grub4dos-0.4.6a-2016-08-06.7z"的引号去掉,运行后结果正常:

验证得到MD5值 182f449cd2e53718b50a97bf9b1b129c

验证得到希哈值 75613178bbfd45a16b6a6044ca2b5fdba7976984

如果要保留引号,应该怎样修改才不会报错呢
2#
发表于 2017-10-25 14:40:16 | 只看该作者
for语句中,在"%~dp0前面加上^,

点评

谢谢回复 我如下操作后还是报错: For /f "tokens=1 delims= " %%b in ('^"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set m=%%b) echo 验证得到MD5值 %m% echo. For /f  详情 回复 发表于 2017-10-25 16:02
回复

使用道具 举报

3#
 楼主| 发表于 2017-10-25 16:02:17 | 只看该作者
freesoft00 发表于 2017-10-25 14:40
for语句中,在"%~dp0前面加上^,

谢谢回复
我如下操作后还是报错:
For /f "tokens=1 delims= " %%b in ('^"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set m=%%b)
echo 验证得到MD5值 %m%
echo.

For /f "tokens=2 delims= " %%b in ('^"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set x=%%b)
echo 验证得到希哈值 %x%
echo.

点评

我已经标明了颜色,你还是少了一个。  详情 回复 发表于 2017-10-25 16:18
回复

使用道具 举报

4#
发表于 2017-10-25 16:17:54 | 只看该作者
For /f "tokens=2 delims= " %%b in ('^,"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set x=%%b)
echo 验证得到希哈值 %x%
echo.
回复

使用道具 举报

5#
发表于 2017-10-25 16:18:25 | 只看该作者
yjqd 发表于 2017-10-25 16:02
谢谢回复
我如下操作后还是报错:
For /f "tokens=1 delims= " %%b in ('^"%~dp0微软md5希哈值验证fciv ...

我已经标明了颜色,你还是少了一个。

点评

我发的帖子在: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=408885&fromuid=569633 请麻烦看一下该怎样写: win7pe中的winpeshl.ini内容如下: [LaunchApps] "xcopy X:\Program Files\小知  详情 回复 发表于 2018-4-20 16:52
谢谢回复,成功了 很抱歉,是我的错,少加了一个逗号 发贴之前,我加了参数usebackq也不行,所以只好求助,再次谢谢freesoft00 ========================================================= For /f "tokens=1 de  详情 回复 发表于 2017-10-25 16:37
回复

使用道具 举报

6#
 楼主| 发表于 2017-10-25 16:37:12 | 只看该作者
freesoft00 发表于 2017-10-25 16:18
我已经标明了颜色,你还是少了一个。

谢谢回复,成功了
很抱歉,是我的错,少加了一个逗号
发贴之前,我加了参数usebackq也不行,所以只好求助,再次谢谢freesoft00
=========================================================
For /f "tokens=1 delims= " %%b in ('^,"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set m=%%b)
echo 验证得到MD5值 %m%
echo.

For /f "tokens=2 delims= " %%b in ('^,"%~dp0微软md5希哈值验证fciv.exe" -both "grub4dos-0.4.6a-2016-08-06.7z"') do (set x=%%b)
echo 验证得到希哈值 %x%
echo.

验证得到MD5值 182f449cd2e53718b50a97bf9b1b129c

验证得到希哈值 75613178bbfd45a16b6a6044ca2b5fdba7976984
=========================================================
回复

使用道具 举报

7#
发表于 2017-10-25 16:48:57 来自手机 | 只看该作者
  1. @echo off
  2. pushd %~dp0\
  3. For /f "tokens=1,2" %%a in ('微软md5希哈值验证fciv.exe -both "grub4dos-0.4.6a-2016-08-06.7z"') do (
  4.         echo 验证得到MD5值        %%a
  5.         echo 验证得到希哈值        %%b
  6. )
  7. echo;
复制代码

点评

下面是我原来的批处理内容: @echo off cd /d %~dp0 title 微软md5希哈值验证工具fciv echo. echo 微软md5希哈值验证工具fciv echo ========================================  详情 回复 发表于 2017-10-25 17:41
谢谢回复 我去试试 ========================================================= 为了发贴求助,我简化了一个批处理,这样内容少些。 在我实际运用中,把要验证的文件拖入批处理窗口,微软的fciv.exe好像对路径  详情 回复 发表于 2017-10-25 17:02
回复

使用道具 举报

8#
 楼主| 发表于 2017-10-25 17:02:20 | 只看该作者

谢谢回复
我去试试
=========================================================
为了发贴求助,我简化了一个批处理,这样内容少些。
在我实际运用中,把要验证的文件拖入批处理窗口,微软的fciv.exe好像对路径识别有问题,所以把批处理用CD命令进入了待验证文件的路径,fciv.exe和待验证文件又不在同一路径,就在fciv.exe前面加了路径,考虑到文件名有空格或路径有空格,所以都加了引号

点评

搞这么麻烦,下个hash放到发送到文件夹不就好了  详情 回复 发表于 2017-10-25 17:04
回复

使用道具 举报

9#
发表于 2017-10-25 17:04:56 来自手机 | 只看该作者
yjqd 发表于 2017-10-25 17:02
谢谢回复
我去试试
=========================================================

搞这么麻烦,下个hash放到发送到文件夹不就好了

点评

每验证一个文件都要发送一次吗  详情 回复 发表于 2017-10-25 17:07
回复

使用道具 举报

10#
 楼主| 发表于 2017-10-25 17:07:05 | 只看该作者
nttwqz 发表于 2017-10-25 17:04
搞这么麻烦,下个hash放到发送到文件夹不就好了

每验证一个文件都要发送一次吗

点评

不在同一个文件夹下的当然要发多次了,一个文件夹下的选中一起发送就好。注意hash需要管理员权限  详情 回复 发表于 2017-10-25 18:21
回复

使用道具 举报

11#
 楼主| 发表于 2017-10-25 17:41:48 | 只看该作者

下面是我原来的批处理内容:

@echo off
cd /d %~dp0
title 微软md5希哈值验证工具fciv
echo.
echo                              微软md5希哈值验证工具fciv
echo ================================================================================

:r

set p=
set /p p=拖入要验证的文件:
echo.

if "%p:~1,1%"==":" set p="%p%"


For /f "delims=" %%b in (%p%) do (set pp=%%~nxb
set ppp=%%~dpb)


echo.

echo 文件所在路径 %ppp%
echo.
echo 文件在路径和文件名 %p%
echo.
echo 文件名 %pp%
echo.
cd /d "%ppp%"
echo.
echo 进入文件所在路径 %cd%
echo.
rem 微软md5希哈值验证fciv.exe -md5 "%pp%"

rem 微软md5希哈值验证fciv.exe -both "%pp%"

For /f "tokens=1 delims= " %%b in ('微软md5希哈值验证fciv.exe -both "%pp%"') do (set m=%%b)
echo 验证得到MD5值 %m%
echo.

For /f "tokens=2 delims= " %%b in ('微软md5希哈值验证fciv.exe -both "%pp%"') do (set x=%%b)
echo 验证得到希哈值 %x%

echo.

set /p ym=输入原提供者给出的MD5值:
echo.
if /i "%ym%"=="" echo 你没有输入原提供者给出的MD5值
echo.
set /p yx=输入原提供者给出的希哈值:
echo.
if /i "%yx%"=="" echo 你没有输入原提供者给出的希哈值
echo.

if /i "%ym%"=="%m%" (echo.&echo MD5值相等) else echo.&echo MD5值不相等
echo.
if /i "%yx%"=="%x%" (echo.&echo 希哈值相等) else echo.&echo 希哈值不相等
echo.

set x=
set y=
set yx=
set ym=
echo.
pause
echo.
goto r
exit
回复

使用道具 举报

12#
发表于 2017-10-25 18:21:18 来自手机 | 只看该作者
yjqd 发表于 2017-10-25 17:07
每验证一个文件都要发送一次吗

不在同一个文件夹下的当然要发多次了,一个文件夹下的选中一起发送就好。注意hash需要管理员权限
回复

使用道具 举报

13#
发表于 2017-10-25 23:51:22 来自手机 | 只看该作者
hashtab直接集成到文件属性窗口和右键菜单 对文件夹操作就批量计算
回复

使用道具 举报

14#
发表于 2017-10-29 20:28:03 来自手机 | 只看该作者
加usebackq  要变号的
回复

使用道具 举报

15#
 楼主| 发表于 2018-4-20 16:52:28 | 只看该作者
freesoft00 发表于 2017-10-25 16:18
我已经标明了颜色,你还是少了一个。


我发的帖子在:
http://bbs.wuyou.net/forum.php?m ... &fromuid=569633

请麻烦看一下该怎样写:

win7pe中的winpeshl.ini内容如下:

[LaunchApps]

"xcopy X:\Program Files\小知识 X:\Users\Default\Desktop"
运行无效

改成:
"xcopy “X:\Program Files\小知识” X:\Users\Default\Desktop"
还是无效

改成单引号也无效
'X:\Program Files\小知识'
回复

使用道具 举报

16#
发表于 2018-4-20 19:25:33 | 只看该作者
echo d|xcopy “X:\Program Files\小知识” "X:\Users\Default\Desktop"

点评

echo d|xcopy “X:\Program Files\小知识” "X:%users\Default\Desktop" 测试了,无效  详情 回复 发表于 2018-4-20 20:43
谢谢回复 我去试试 应该不是没有echo d的原因,我试过拷贝没有空格的文件夹时,它会提示选择文件还是目录 "xcopy %windir%\重启.bat X:%users\Default\Desktop" 这种格式也必须加双引号全部引起来,不则  详情 回复 发表于 2018-4-20 19:51
回复

使用道具 举报

17#
 楼主| 发表于 2018-4-20 19:51:34 | 只看该作者
freesoft00 发表于 2018-4-20 19:25
echo d|xcopy “X:\Program Files\小知识” "X:%users\Default\Desktop"

谢谢回复
我去试试

应该不是没有echo d的原因,我试过拷贝没有空格的文件夹时,它会提示选择文件还是目录

"xcopy %windir%\重启.bat X:\Users\Default\Desktop"      这种格式也必须加双引号全部引起来,不则无效

如果有空格路径加了双引号,总共两个双引号,执行无效

回复

使用道具 举报

18#
 楼主| 发表于 2018-4-20 20:43:32 | 只看该作者
freesoft00 发表于 2018-4-20 19:25
echo d|xcopy “X:\Program Files\小知识” "X:%users\Default\Desktop"


echo d|xcopy “X:\Program Files\小知识” "X:\Users\Default\Desktop"
测试了,无效
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-19 21:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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