あるネットワークの場所 (テレビ番組のダウンロード フォルダー) から別のネットワークの場所 (私の pvr) にファイルをコピーする vbscript (cscript/vbs) を取得しようとしています。
xcopy を使用しようとしましたが、コンテキストなしで「解析エラー」になりました。スペースを含むファイルが引用符で囲まれていることを確認するなど、いくつかのことを試しましたが、うまくいきませんでした。
scripting.filesystemobject の copyfile メソッドを使用してみましたが、これは「ファイル名または番号が正しくありません」というエラーで失敗し、これをグーグルで検索すると、非常に多くの行き止まりが発生しました。
上記の両方よりも一般的に優れているため、現在、コピーを処理するためにrobocopyを取得しようとしています。しかし、WScript.Shell の Run メソッドを使用して cscript 内から実行すると、出力先、ファイル名、およびパラメーターがすべて「失敗」します。
ということで、コピペ部分を抜粋。
if dirmatch > "" then
fileFrom = quote(myloc) ' & fil.name) 'fil.name will not need to be quoted
fileTo = quote(dirmatch) ' puts double-quotes around things if they have spaces in the name
' copyCommand = "%comspec% /k xcopy " & fileFrom & " " & fileTo & " /C /D /Y" ' returns "parse error"
copyCommand = "%comspec% /k robocopy " & fileFrom & " " & fileTo & " " & fil.name & " /R:3 /W:10"' /MOV"
logmsg copyCommand
oShellApp.run copyCommand
else
logmsg "no matching directory found for: " & fil.name
end if
fileFrom と fileTo は、ファイル名の解析を使用して以前に計算したディレクトリです。形式は\\server\path\more path might have spaces\etc\etc
. fil.name はファイルで、スペースはありません - ドットで区切られています。フォルダー名のスペースは、私が使用する別のアプリで一致する理由の要件です。
したがって、特定のファイル コピー コマンドは次のようになります。
00:19: %comspec% /k robocopy \\qnap\qdownload\transmission\completed \\pvr\e\tv\MythBusters Mythbusters.S11E03.Hail.Hijinx.HDTV.x264-FQM.mp4 /R:3 /W:10
しかし、新しいコマンド ウィンドウ (例cmd.exe /k
) で robocopy を実行すると、次のようにスローされます。
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Tue Oct 23 21:04:58 2012
Source : \\qnap\qdownload\transmission\completed\
Dest -
Files : *.*
Options : *.* /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
ERROR : No Destination Directory Specified.
私はそれを正しく起動しましたが、最初のパラメーターを過ぎて見ることができません。copy を使用して同じコマンドを実行すると、同じ問題が発生する可能性があります。
すべての robocopy パラメータを取得して、新しい cmd インスタンスに渡すにはどうすればよいですか?
PS私のスクリプト全体はここにあります:http://pastebin.com/xgpGJYmU:自由に最適化してください!