私は、ユーザーのPCから項目をコピーして別のコンピュータに配置するシンプルなスクリプトに問題があります。ただし、コピー先のファイルパスにはスペースが含まれています。私はこの問題を修正する複数の方法を試みましたが(一部は完全に理解していません)、文字列の前後に二重引用符を使用してpowershellを実行するように強制しました。スペースによるバッチファイルのエラー
この状況に非常に簡単な前兆を与えるために、私は最初にこのスクリプトをWindows 10でPowershellを使って作成したことを付け加えなければなりません。また、Powershellでは.batとしてではなく完全に機能すると付け加えてください。私は、言語に多少の違いや、プログラムを通して解釈されるものがあるかもしれないことを理解しています。
Copy-Item $ENV:USERPROFILE\Desktop\VAST.accdb -destination "\\PRECDP19670\C$\Users\WAKE\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" -Force -PassThru -Verbose
先がファイルパスにスペースが含まれています。ここ
は、問題の文字列です。ご協力いただきましてありがとうございます。
'Copy-item'は、PowerShellでのみ実行できるPowerShellコマンドです。 –
"言語に若干の違いがあるかもしれません"とは、あまりにも控え目な言葉です。バッチスクリプトはPowerShellスクリプティングとはまったく異なりますが、まったくそうではありません。この質問が意味のある回答になる前に、PowerShellまたはバッチファイル(またはバッチファイルからのPowerShell *)を使用しているかどうかを判断する必要があります。 PowerShellのフォームバッチファイルを呼び出すには、スクリプトを独自の '.ps1'ファイルに入れて、' powershell.exe -file script.ps1'を起動するのが最も負担になりません。コマンドを直接実行することは可能ですが、すぐにクォートの問題にぶつかり、 '-EncodedCommand'のような厄介な回避策が必要になります。 –
@JeroenMostertありがとうございました。私は実際にPowerShellを使用してスクラップし、スクリプトを一括して作成しました。何よりも、バッチファイルで作業するのは難しいと思っていましたが、PowerShellで書いていたときよりも簡単です。 単純な** xcopy **を使用して、すべてがうまくいきます。 – zhaque