Jak pozwolić użytkownikowi ustawić katalog wyjściowy dla plików?


0

Piszę bardzo prosty skrypt wsadowy do uruchomienia skrótu MD5. Potrzebuję go, aby poprosić użytkownika o katalog wyjściowy, a następnie o adres IP, a następnie zamapować literę dysku na to wyjście. Mogę go zapytać, ale nie wypisuje pliku do wybranego katalogu. Umieszcza go w katalogu lokalnym, z którego skrypt został uruchomiony. Nie będzie też mapować litery dysku. Czy ktoś może mi pomóc to naprawić? Skrót MD5 należy wysłać do katalogu wybranego przez użytkownika.

@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


Jak już mówiłem na Stack Overflow , wydajesz się być zdezorientowany, do czego %1jest używany. Jest to parametr przekazywany do pliku wsadowego podczas jego wywoływania.
— DavidPostill

Dlaczego masz tagi bash i linux?
— DavidPostill

Mówienie mi, że nie wiem, co robię, nie jest pomocne. Już to wiem. Potrzebuję rozwiązania, aby skrypt działał. Czy ludzie są tu zawsze tak nieprzydatni?
— Saemund

Nie mam rozwiązania, ponieważ twoje pytanie nie jest jasne, co próbujesz zrobić. W twoim pliku wsadowym jest wiele błędów. Musisz znaleźć dobry materiał szkoleniowy.
— DavidPostill

Odpowiedzi:


0

Kilka wyjaśnień

Jak to działa

set /p Folder=Enter folder's path: 

set /p IP=Enter computer's IP: 

Po ustawieniu ich za pomocą wartości %Folder%i %IP%można zmapować ścieżkę zdalną na literę

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

Tutaj jest odwzorowany na literę xtworzącą wirtualny Xdysk, zawsze podwójny cudzysłów, ponieważ folder może zawierać spacje znaków specjalnych .


Główna kwestia

dir %1 > investigation.txt

Zwykły investigation.txtbez określonej ścieżki c:\SomeFolder\investigation.txtutworzyłby plik w bieżącym katalogu, czyli w folderze, z którego skrypt został uruchomiony.

Powinieneś więc również podać katalog, a nie tylko nazwę pliku, aby zapisać dane wyjściowe w pliku w katalogu, w którym chcesz go zapisać.

Co więcej, %1jest pierwszym argumentem, który jest wartość pierwszego parametru przekazanego do pliku, parametr jest co wpisać po nazwie, który jest po wywołaniu pliku, np mybatchfile.bat parameter1 parameter2„s wartości byłoby %1i %2odpowiednio w pliku wsadowym.

Myślę więc, że skrypt jest zły i powinieneś nauczyć się rozumieć, co robi zawartość, i poprawiać niektóre jej części.


Notatki

  • Adres IP powinien mieć 192.168.1.1format, czyli cztery liczby, trzy kropki, aby działał
  • Możesz użyć nazwy hosta, czyli nazwy komputera, zamiast jego adresu, czyli adresu IP
  • Aby poznać nazwę komputera: echo %ComputerName%
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.