一些解释

一些解释

我正在编写一个非常基本的批处理脚本来运行 MD5 哈希。我需要它向用户询问输出目录,然后询问 IP 地址输出,然后将驱动器号映射到此输出。我可以让它询问,但它不会将文件输出到所选目录。它将其放在运行脚本的本地目录中。它也不会将驱动器号映射到它。有人能帮我解决这个问题吗?MD5 哈希应该发送到用户选择的目录。

@ECHO OFF
pause
REM This section prompts user for output location 

:start
CLS
set /p direct="Enter the directory output location: "

dir %1 %direct% > investigation.txt 
pause

REM 

set /p direct="Enter the IP output location: "

dir %1 > investigation.txt 
pause

REM Map share 
@echo Map Share
@echo off 
net use z: \\%1
pause

REM This section appends the date and time of the investigation. 
@Echo Date and Time 
@Echo off
date /T >> investigation.txt && time /T >> INVESTIGATION.TXT 
pause 

REM This step creates the MD5 hash 


@echo MD5 VALUE
@echo off 
MD5DEEP investigation.txt > Hash.txt


pause 

REM This step creates the SHA1 hash
echo SHA1 VALUE
@echo off 
SHA1DEEP investigation.txt >> Hash.txt  
pause

答案1

一些解释

怎么运行的

set /p Folder=Enter folder's path: 

set /p IP=Enter computer's IP: 

一旦设置了%Folder%%IP%值,就可以将远程路径映射到字母

net use x: "\\%IP%\%Folder%"

x这里它映射到创建虚拟驱动器的字母X,始终用双引号引起来,因为文件夹可能包含特殊字符空格。


主要问题

dir %1 > investigation.txt

investigation.txt没有指定路径的普通命令c:\SomeFolder\investigation.txt将会在当前目录中创建文件,即在脚本运行的文件夹内。

因此,您还应该指定目录,而不仅仅是文件的名称,以便将输出保存到您希望保存的目录中的文件中。

此外,%1是第一个参数,即传递给文件的第一个参数的值,参数是您在其名称后键入的内容,即在调用文件之后,例如,在批处理文件中mybatchfile.bat parameter1 parameter2的值分别是%1和。%2

所以我认为,脚本是错误的,你应该学会理解内容的作用,并纠正其中的某些部分。


笔记

  • IP 的192.168.1.1格式应该是四个数字加三个点,这样才能正常工作
  • 您可以使用主机名(即计算机的名称),而不是其地址(即 IP)
  • 要了解您的计算机的名称:echo %ComputerName%

相关内容