/ / SendTo / बैच / 7zip - विंडोज़, बैच-फ़ाइल, 7zip, sendto

SendTo / बैच / 7 ज़िप - विंडोज़, बैच-फाइल, 7 ज़िप, sendto

मैं SendTo शॉर्टकट बनाने की कोशिश कर रहा हूँ aबैच स्क्रिप्ट जो चयनित फ़ाइलों को ले जाएगी (इस मामले में, jpg "), उन्हें 7zip के साथ ज़िप करें और उन्हें फ़ोल्डर का नाम दें (जो चयनित फ़ाइलें हैं) और उन्हें उसी फ़ोल्डर में रखें। निर्देशिका नामों में स्थान हैं उन्हें भी। मैं असली करीब हूँ लेकिन एक स्टंप मारा है ..

यहाँ मैं क्या है "अब तक मिल गया है

@echo off set folder=%~dp1 if exist "%folder%- Photos.zip" del "%folder%- Photos.zip" "C:Program Files7-Zip7z" a -mx9 -tzip "%folder%- Photos.zip" "%~dp1*.jpg" pause

यह सब कुछ मैं चाहता हूँ के बारे में कर रहा है, सिवाय ज़िप फ़ाइल का नामकरण नहीं। यह हमेशा उस निर्देशिका में "- Photos.zip" को समाप्त करता है जो मुझे चाहिए।

कोई मदद? अग्रिम में धन्यवाद..

उत्तर:

जवाब के लिए 0 № 1

आप सिर्फ निर्दिष्ट कर रहे हैं C:folder - Photos.zip लेकिन आप चाहते हैं C:folderfolder - Photos.zip

फ़ोल्डर और फ़ाइल नाम उपसर्ग अलग से प्राप्त करने के लिए इसे आज़माएँ:

set folder=%~dp1
set filename=%~p1
set filename=%filename:~1,-1%

Cann "t यह कोशिश करता है क्योंकि मेरे टैबलेट में डॉक्सबॉक्स नहीं है ;-)

फिर इस तरह 7z:

"C:Program Files7-Zip7z" a -mx9 -tzip "%folder%%filename% - Photos.zip" "%~dp1*.jpg"

यदि आप इसे डीबग करना चाहते हैं, तो आपको जोड़ना चाहिए

echo folder is %folder% >> C:tempbatch.log
echo filename is %filename% >> C:tempbatch.log

और बाद में उस फ़ाइल की जाँच करें।


जवाब के लिए 0 № 2

इस के साथ आने का अंत हुआ और यह काम करता है!

@echo off

set folder=%~dp1
IF %folder:~-1%== SET folder=%folder:~0,-1%

set name=%~p1
if %name:~-1%== set name=%name:~0,-1%


if exist "%folder%%name% - Photos.zip" del "%folder%%name% - Photos.zip"

"C:Program Files7-Zip7z" a -mx9 -tzip "%folder%%name% - Photos.zip" "%~dp1*.jpg"