* .bat, который сохраняет папку пути как переменную - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь сделать небольшой инструмент в * .bat, но я не нашел ответ, который я ищу. Идея состоит в том, чтобы дважды щелкнуть по сценарию, всплывающему окну, чтобы выбрать папку и сохранить папку пути как своего рода «переменную» и поместить ее в строку, как показано ниже. Я хотел бы распаковать рекурсивно из нескольких каталогов и подкаталогов.

@echo off
Title unzip_bz2
for /r "%Location%" %I IN (*.bz2) DO 7z x %I -o"%~dpI"

, чтобы получить что-то вроде:

FOR /R C:\Users\steph\Desktop\my_bz2_file\ %I IN (*.bz2) DO 7z x %I -o"%~dpI"

Заранее спасибо за ваш совет и помощь.

1 Ответ

0 голосов
/ 17 февраля 2020

Если я правильно понимаю ваш вопрос, вы можете использовать из вашего , чтобы помочь вам с этой задачей:

0</* :
@For /F "Delims=" %%G In (
    '""%__APPDIR__%cscript.exe" //E:JScript //NoLogo "%~f0" 2>Nul|Find /V """'
)Do @For /F "Delims=" %%H In ('Dir /B/S/A-D "%%G\*.bz2" 2^>NUL')Do @7z.exe x "%%H" -o"%%~dpH"
@Exit /B */0;
var Folder=new ActiveXObject('Shell.Application').BrowseForFolder(0,'Select your directory.',1,'0');
try{new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch(e){};close();

Очевидно, для этого для работы с использованием предоставленной вами команды 7z, 7z.exe должен находиться в текущем каталоге, расположенном в %PATH%, или в расположении, указанном в соответствующем разделе реестра. Если нет, вам нужно указать полный путь к 7z.exe

...