Я пишу очень простой пакетный скрипт для запуска хеша 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 ответ1

0

Некоторые объяснения

Как это устроено

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 значения2 будут %1 и %2 соответственно внутри командного файла.

Поэтому я думаю, что сценарий неверен, и вы должны научиться понимать, что делает содержимое, и исправлять некоторые его части.


Заметки

  • IP должен быть в формате 192.168.1.1 , это четыре числа, три точки, чтобы он работал
  • Вы можете использовать имя хоста, то есть имя компьютера, а не его адрес, это IP
  • Чтобы узнать имя вашего компьютера: echo %ComputerName%

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .