Discussion forum for all Windows batch related topics.
Moderator: DosItHelp
-
skylinekiller
- Posts: 4
- Joined: 15 Feb 2023 22:36
#1
Post
by skylinekiller » 16 Feb 2023 19:03
I want to extract all the .7z files' subdirectories (skipping the parent directory) into the same directory as my bat file. If files/folders exist, it overwrites without prompting
Example of now:
Code: Select all
│ extract.bat
│
├───Steven Folder
│ Steven.7z (parent folder is Steven and has subdirectories of Pictures and Resume)
│
├───John Jacobs Folder
│ John Jacobs.7z (parent folder is John Jacobs and has subdirectories of Pictures and reports)
│
└───Jay Cloud Folder
Jay Cloud .7z
Example of what I want:
Code: Select all
extract.bat
Pictures 'folder'
Resumes 'folder'
Reports 'folder'
The script I am using below only extracts the .7z file parent directory into the same directory where the .7z file is.
Code: Select all
for /F "delims=" %%I IN ('dir /b /s/a-d *.7z') DO (
"C:\Program Files\7-zip\7z.exe" x -y -o"%%~dpI" "%%I"
)
-
Compo
- Posts: 600
- Joined: 21 Mar 2014 08:50
#2
Post
by Compo » 17 Feb 2023 06:37
What happens when you change %%~dpI to %%~dp0?
-
skylinekiller
- Posts: 4
- Joined: 15 Feb 2023 22:36
#3
Post
by skylinekiller » 17 Feb 2023 08:32
Thank you for taking a look at it. I I make the change you suggested, It creates a folder in the same directory as .bat file called "%~dp0" and all the .7z files are extracted into that folder BUT it still extracts the parent folders of all the .7z files. I am trying to get it to OMIT the parent folder, as shown in my initial post.
-
kwsiebert
- Posts: 43
- Joined: 20 Jan 2016 15:46
#4
Post
by kwsiebert » 17 Feb 2023 11:32
That almost sounds like you entered it on the command line, rather than running the batch file. It's going to behave differently in each case. Alternately, did you accidentally type a third %?
This is not the place for help with the 7zip application, but check what the command line switches being used do. Also, be aware that ZIP archives might have been created with a folder structure inside them in the first place, which could be getting extracted.
-
skylinekiller
- Posts: 4
- Joined: 15 Feb 2023 22:36
#5
Post
by skylinekiller » 17 Feb 2023 11:57
Below is the code with the change you suggested. I guess where it extracts isn't as crucial as omitting the first directory when extracting and overwriting everything as it extracts. That's the main challenge getting it to extract the .7z from the second directory.
Code: Select all
for /F "delims=" %%I IN ('dir /b /s/a-d *.7z') DO (
"C:\Program Files\7-zip\7z.exe" x -y -o"%%~dp0" "%%I"
)
-
skylinekiller
- Posts: 4
- Joined: 15 Feb 2023 22:36
#6
Post
by skylinekiller » 18 Feb 2023 00:33
kwsiebert wrote: ↑17 Feb 2023 11:32
That almost sounds like you entered it on the command line, rather than running the batch file. It's going to behave differently in each case. Alternately, did you accidentally type a third %?
This is not the place for help with the 7zip application, but check what the command line switches being used do. Also, be aware that ZIP archives might have been created with a folder structure inside them in the first place, which could be getting extracted.
That is correct "folder structure inside them in the first place, which could be getting extracted" I want it to extract everything after the first folder in the zip