查看: 1709|回复: 17
收起左侧

[已解决] [cmd]怎么把这个改成相对目录的?!?!

[复制链接]
kxmp
发表于 2018-5-28 00:14:50 | 显示全部楼层 |阅读模式
本帖最后由 kxmp 于 2018-5-30 17:44 编辑

for /r %f in (*) do md5sum “%f” >>1.txt

2018-05-30 13:32:49
我想让这个输出里面的路径变成这样

x:\111\2222

->
111\222
或者
222

2018-05-30 16:19:57
具体是这样
比如for /r %f in (*) do echo “%f”
然后他echo出来的路径都是绝对路径 带盘符的

我怎么能让他变成只输出相对路径的呢.

2018-05-30 17:37:27
根据14L
修改成这样就ok了
@echo off
setlocal EnableExtensions EnableDelayedExpansion
for /r %%i in (*) do (set data=%%~dpnxi
CALL SET output=!data:%cd%\=!
md5sum "!output!"
)

或者直接保存那个echo 但是后面要有引号括起来 echo "!output!"
随便起个名字 比如f1  
然后FOR /F "TOKENS=*" %F IN ('f1') DO md5sum %F


我的f1在变量里面 所以直接就调用了. 输入脚本路径也可以.

下面是效果图.    图里面有个漂亮狗


另外问一句 谁有crc32sum 类似md5sum的
我感觉做个校验 crc32就够了 或者crc64?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
ghostByWolf
发表于 2018-5-30 10:52:22 | 显示全部楼层
./  不就是当前目录下了吗?
这样写就是把文件写到 当前执行目录下了
就是那个 X:zz/zz> 开头的那个文件夹
fireherman
发表于 2018-5-30 11:12:44 | 显示全部楼层
本帖最后由 fireherman 于 2018-5-30 11:13 编辑



相对目录的三种形式:

反斜杠 \ :表示根目录
单一点 . :本目录
双点 .. :父目录

不知道你所说的相对目录是哪个位置,

你这条DOS命令,如果要把md5sum这个程序所输出的数据,复制到哪个目录?

例如需要在本地生成,就写为:

  1. for /r %%f in (*) do md5sum “%%f” >> .\MD5_database.txt
复制代码


注:作为for的变量,是两个百分号+字母,如 %%i

kxmp
 楼主| 发表于 2018-5-30 13:35:19 | 显示全部楼层
我更新了下
@fireherman
@ghostByWolf
mifanu
发表于 2018-5-30 14:41:46 | 显示全部楼层
for /r %f in (*) do md5sum “%f” >>x:\111\2222\1.txt
mifanu
发表于 2018-5-30 14:43:29 | 显示全部楼层
fireherman 发表于 2018-5-30 11:12
相对目录的三种形式:

反斜杠 \ :表示根目录

bat必须是两个%,直接在cmd必须是一个%
kxmp
 楼主| 发表于 2018-5-30 14:53:13 | 显示全部楼层
mifanu 发表于 2018-5-30 14:41
for /r %f in (*) do md5sum “%f” >>x:\111\2222\1.txt

我是说输出的那个表 也就是结果里面的路径
不是输出文件所在的路径.....
fireherman
发表于 2018-5-30 16:10:28 | 显示全部楼层
本帖最后由 fireherman 于 2018-5-30 16:20 编辑
kxmp 发表于 2018-5-30 13:35
我更新了下
@fireherman
@ghostByWolf



这取决于你运行时、或者拖放文件到【你所建立的带for这条语句的BAT文件的目录】。

假如:你必须要把生成的文件放在 E:\111\222\

而【你所建立的这个带for语句的BAT文件】不在E盘,那么必须要用【绝对路径】

  1. for /r %%f in (*) do md5sum “%%f” >>E:\111\222\1.txt
复制代码


如果【你所建立的这个带for语句的BAT文件】在E盘根目录,那么可以用【相对路径】

  1. for /r %%f in (*) do md5sum “%%f” >>.\111\222\1.txt
复制代码


如果【你所建立的这个带for语句的BAT文件】在E:\111\ 目录,那么可以用【相对路径】

  1. for /r %%f in (*) do md5sum “%%f” >>.\222\1.txt
复制代码


如果【你所建立的这个带for语句的BAT文件】在E:\333\ 目录,那么可以用【相对路径】

  1. for /r %%f in (*) do md5sum “%%f” >>..\111\222\1.txt
复制代码


--------------------------------//-----------------------------------

看清楚问题了……那么就要看你这个 md5sum.exe 程序是否能显示相对路径。

如 dir 这个命令,只能显示【绝对路径】

  1. dir /b /s >> .\fileNames.txt
复制代码


kxmp
 楼主| 发表于 2018-5-30 16:19:37 | 显示全部楼层
fireherman 发表于 2018-5-30 16:10
这取决于你运行时、或者拖放文件到【你所建立的带for这条语句的BAT文件的目录】。

假如:你必须要 ...

我说的是输出结果 不是输出文件的位置好不好.

我再更新下去...
fireherman
发表于 2018-5-30 16:20:31 | 显示全部楼层
本帖最后由 fireherman 于 2018-5-30 16:22 编辑
kxmp 发表于 2018-5-30 16:19
我说的是输出结果 不是输出文件的位置好不好.

我再更新下去...



已经修改,在8楼文末。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

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

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-25 17:50 , Processed in 0.144995 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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