[解決済み] Powershellスクリプトから7-Zipを実行する
2022-02-05 07:11:52
質問
7-Zipを使って、Powershell(v2)スクリプト内のいくつかのファイルをバックアップしようとしています。
私は持っています。
$zipPath = "C:\Program Files\7-Zip\7z.exe"
[Array]$zipArgs = "-mx=9 a", "`"c:\BackupFolder\backup.zip`"", "`"c:\BackupFrom\backMeUp.txt`""
&$zipPath $zipArgs;
しかし、これを実行すると、次のようになります。
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Error:
Incorrect command line
これを画面に書き込むと......。
C:\Program Files\7-Zip\7z.exe -mx=9 a "c:\BackupFolder\backup.zip" "c:\BackupFrom\backMeUp.txt"
そこで、7z.exeへのパスを引用符で囲む必要があると仮定したところ、こうなりました。
$zipPath = "C:\Program Files\7-Zip\7z.exe"
$zipPath = " `"$zipPath`" "
[Array]$zipArgs = "-mx=9 a", "`"c:\BackupFolder\backup.zip`"", "`"c:\BackupFrom\backMeUp.txt`""
&$zipPath $zipArgs;
しかし、その後、次のようなエラーが発生します。
The term '"C:\Program Files\7-Zip\7z.exe"' is not recognized as the name of a cmdlet, function, script file
, or operable program. Check the spelling of the name, or if a path was included, verify that the path is c
orrect and try again.
At C:\BackupScript\Backup.ps1:45 char:22
+ & <<<< `"$zipPath`" $zipArgs;
+ CategoryInfo : ObjectNotFound: ("C:\Program Files\7-Zip\7z.exe":String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
書き出すことで得られる
"C:\Program Files\7-Zip\7z.exe" -mx=9 a "c:\BackupFolder\backup.zip" "c:\BackupFrom\backMeUp.txt"
コマンドウィンドウに直接貼り付けると、期待通りに動作します。 私はしばらくこれを理解しようとしていますが、私は何かを見逃していると仮定します(おそらく非常に明白な)。どなたか、これを実行するために必要なことを教えていただけませんか?
どのように解決するのですか?
発見 これ スクリプトを作成し、それをあなたのニーズに合わせてアレンジしました。試していただけませんか。
$7zipPath = "$env:ProgramFiles\7-Zip\7z.exe"
if (-not (Test-Path -Path $7zipPath -PathType Leaf)) {
throw "7 zip file '$7zipPath' not found"
}
Set-Alias 7zip $7zipPath
$Source = "c:\BackupFrom\backMeUp.txt"
$Target = "c:\BackupFolder\backup.zip"
7zip a -mx=9 $Target $Source
関連
-
[解決済み】powershellで再利用するために資格情報を保存すると、ConvertTo-SecureString : Key not valid for use in specified stateというエラーが発生する。
-
[解決済み] powershell で再利用するために資格情報を保存すると、ConvertTo-SecureString : Key not valid for use in specified state というエラーが発生する。
-
[解決済み] Get-ADUser でのエラー: 無効な列挙コンテキスト
-
[解決済み] Powershell - 空のパイプ要素は許可されません。
-
[解決済み] Base64の文字列をデコードするには?
-
[解決済み] Powershell ISE 内の別の PS1 スクリプトから PowerShell スクリプト PS1 を呼び出す
-
[解決済み] PowerShellでショートカットを作成する方法
-
[解決済み] powershellでToStringを使用して日付をフォーマットする
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】'<'演算子は将来の使用のために予約されている
-
[解決済み] ConvertTo-Csv 引用符なしの出力
-
[解決済み] リモートサーバーへのEnter-PSSessionが "access is denied "で失敗する。
-
[解決済み] PowerShellで環境変数をコンソールに出力する方法は?
-
[解決済み] Powershellでパラメータを切り替える
-
[解決済み] PowerShellの文字列補間構文
-
[解決済み] powershell で $args 配列にアクセスする
-
[解決済み] PowerShellで改行するには?
-
[解決済み] 配列、ハッシュテーブル、ディクショナリーを作成しますか?
-
[解決済み] PowerShellでコマンド出力に改行を追加するにはどうすればよいですか?