.BAT 不提取文件,但 cmd-line 做
.BAT don't extract the file but cmd-line do
我使用以下代码创建了文件 extract.bat:
@echo off
7z x "f:\Downloads\*.zip" –o"f:\Downloads"
7z x "f:\Downloads\*.rar" –o"f:\Downloads"
7z x "f:\Downloads\*.7z" –o"f:\Downloads"
pause
如果我打开 cmd 和 运行 代码:
7z x "f:\Downloads\*.zip" –o"f:\Downloads"
有效,但如果我打开 .BAT 文件,则不会解压缩 zip。
为什么???
谢谢!
更新:运行extract.bat后的输出:
F:\Programas>7z x "F:\Downloads\*.zip" ΓÇôo"f:\Downloads"
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning the drive for archives:
1 file, 731338124 bytes (698 MiB)
Extracting archive: F:\Downloads\PromoVideo[720p].zip
--
Path = F:\Downloads\PromoVideo[720p].zip
Type = zip
Physical Size = 731338124
No files to process
Everything is Ok
Files: 0
Size: 0
Compressed: 731338124
F:\Programas>pause
Press any key to continue . . .
并在运行命令后直接输出到cmd:
Microsoft Windows [Version 10.0.18362.900]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\Diego>7z x "F:\Downloads\*.zip" -o"f:\Downloads"
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning the drive for archives:
1 file, 731338124 bytes (698 MiB)
Extracting archive: F:\Downloads\PromoVideo[720p].zip
--
Path = F:\Downloads\PromoVideo[720p].zip
Type = zip
Physical Size = 731338124
Everything is Ok
Size: 731544885
Compressed: 731338124
C:\Users\Diego>
如你所见,如果我运行命令:
7z x "F:\Downloads\*.zip" –o"f:\Downloads"
直接进入cmd就可以了,但是如果我打开.BAT文件就不行了。
有什么想法吗?
谢谢!
回显了 .bat
文件:
F:\Programas>7z x "F:\Downloads\*.zip" ΓÇôo"f:\Downloads"
ΓÇô
OEM codepage 437 is hex bytes E2 80 93
, which represent the en-dash –
in UTF-8 编码。但是 7z
需要一个普通的破折号 -o
开关,因此它不会将 ΓÇôo
(甚至是破折号 –o
)识别为一个开关。
要解决此问题,请确保:
在 .bat
文件中使用普通的 -
破折号(不要使用任何其他可能看起来像破折号的奇特字符);
将 .bat
文件保存为纯文本(不是 UTF-8)。
我使用以下代码创建了文件 extract.bat:
@echo off
7z x "f:\Downloads\*.zip" –o"f:\Downloads"
7z x "f:\Downloads\*.rar" –o"f:\Downloads"
7z x "f:\Downloads\*.7z" –o"f:\Downloads"
pause
如果我打开 cmd 和 运行 代码:
7z x "f:\Downloads\*.zip" –o"f:\Downloads"
有效,但如果我打开 .BAT 文件,则不会解压缩 zip。
为什么???
谢谢!
更新:运行extract.bat后的输出:
F:\Programas>7z x "F:\Downloads\*.zip" ΓÇôo"f:\Downloads"
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning the drive for archives:
1 file, 731338124 bytes (698 MiB)
Extracting archive: F:\Downloads\PromoVideo[720p].zip
--
Path = F:\Downloads\PromoVideo[720p].zip
Type = zip
Physical Size = 731338124
No files to process
Everything is Ok
Files: 0
Size: 0
Compressed: 731338124
F:\Programas>pause
Press any key to continue . . .
并在运行命令后直接输出到cmd:
Microsoft Windows [Version 10.0.18362.900]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\Diego>7z x "F:\Downloads\*.zip" -o"f:\Downloads"
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning the drive for archives:
1 file, 731338124 bytes (698 MiB)
Extracting archive: F:\Downloads\PromoVideo[720p].zip
--
Path = F:\Downloads\PromoVideo[720p].zip
Type = zip
Physical Size = 731338124
Everything is Ok
Size: 731544885
Compressed: 731338124
C:\Users\Diego>
如你所见,如果我运行命令:
7z x "F:\Downloads\*.zip" –o"f:\Downloads"
直接进入cmd就可以了,但是如果我打开.BAT文件就不行了。
有什么想法吗?
谢谢!
回显了 .bat
文件:
F:\Programas>7z x "F:\Downloads\*.zip" ΓÇôo"f:\Downloads"
ΓÇô
OEM codepage 437 is hex bytes E2 80 93
, which represent the en-dash –
in UTF-8 编码。但是 7z
需要一个普通的破折号 -o
开关,因此它不会将 ΓÇôo
(甚至是破折号 –o
)识别为一个开关。
要解决此问题,请确保:
在
.bat
文件中使用普通的-
破折号(不要使用任何其他可能看起来像破折号的奇特字符);将
.bat
文件保存为纯文本(不是 UTF-8)。