Batch file 批处理7zip,将文件压缩到存档中,不带任何文件夹
我是批处理新手,目前正在练习创建自动化脚本。我现在被这件事缠住了。我希望zip文件只包含tm_user.data,但我的代码会将其归档为Fame\tm_user.data。如果你们中有人能帮我,我将不胜感激 变数Batch file 批处理7zip,将文件压缩到存档中,不带任何文件夹,batch-file,7zip,Batch File,7zip,我是批处理新手,目前正在练习创建自动化脚本。我现在被这件事缠住了。我希望zip文件只包含tm_user.data,但我的代码会将其归档为Fame\tm_user.data。如果你们中有人能帮我,我将不胜感激 变数 set default_folder_name=Main Folder set tm_folder_name=TM Folder set local_dir=C:\%default_folder_name% set tm_dir=%local_dir%\%tm_folder_name%
set default_folder_name=Main Folder
set tm_folder_name=TM Folder
set local_dir=C:\%default_folder_name%
set tm_dir=%local_dir%\%tm_folder_name%
主体
set /p id="Enter ID: "
set d = "tm_user.data"
if exist "%tm_dir%\%id%\Fame\%d%" (
"C:\Program Files\7-Zip\7z.exe" a -tzip "%tm_dir%\%id%\Fame\%id%_fame.zip" "%tm_dir%\%id%\Fame\%d%"
echo Process completed...
timeout 2
start "launch folder" "%tm_dir%\%id%\Fame"
exit
) else (
echo Error: %d% not found, please try again later!!
timeout 5
exit
)
)
批处理文件的一些最佳实践
SET
命令中,不要将空格放在等号的两侧。等号前的空格成为变量名的一部分,等号后的空格被指定给变量PUSHD
和POPD
命令。PUSHD
命令设置工作目录并将上一个目录存储在堆栈上。POPD
命令返回到先前存储的目录。使用此技术,您不必在7zip命令中指定路径
@echo off
set "default_folder_name=Main Folder"
set "tm_folder_name=TM Folder"
set "local_dir=C:\%default_folder_name%"
set "tm_dir=%local_dir%\%tm_folder_name%"
set /p "id=Enter ID: "
set "d=tm_user.data"
if exist "%tm_dir%\%id%\Fame\%d%" (
pushd "%tm_dir%\%id%\Fame"
"C:\Program Files\7-Zip\7z.exe" a -tzip "%id%_fame.zip" "%d%"
echo Process completed...
timeout 2
start .
popd
exit
) else (
echo Error: %d% not found, please try again later!!
timeout 5
exit
)
不要为变量指定引号。此外,不要在equals符号的任一侧放置空格
set d=tm\u user.data
…或set“d=tm\u user.data”
(请参见此处未成为该值一部分的引号)。。。