0

この質問がクローズされてポイントを獲得した理由はわかりませんが、誰も答えられない場合、誰かが私がこれに対する答えを得ることができる方向に私を向けることができますか? ありがとう。ここに再びあります:

Get-ChildItemファイルはまたはでコピーされませんCopy-Item。スクリプトを実行していない実際の PowerShell ウィンドウの出力を次に示します。

PS C:\> Open-Device 10.42.233.237
Connecting to device '10.42.233.237' ...


Device Name : 10.42.233.237
Device IP   : 10.42.233.237
Device Host :

Run 'Get-Variable Device*' to see variables set for the connected session.


DEVICE C:\
PS C:\> Get-ChildItem -Path "V:\WP\QM\Audio\Decode\Automated" -Filter *.3g2 | Copy-Item -Destination C:\test\MinTE
DEVICE C:\
PS C:\> putd -Path "V:\WP\QM\Audio\Decode\Automated" -Filter "*.3g2" -Destination "C:\test\MinTE"
Put-Device : A parameter cannot be found that matches parameter name 'Path'.
At line:1 char:6
+ putd -Path "V:\WP\QM\Audio\Decode\Automated" -Filter "*.3g2" -Destination "C:\te ...
+      ~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Put-Device], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.Texus.Shells.PowerShell.PutFileDeviceCmdlet

DEVICE C:\
PS C:\>

putd は Put-Device の略です。Get-ChildItem と Copy-Item は、デバイスに接続されている間は機能しません。これらはコマンドレット関数として認識されません。アイデアを得るための完全なスクリプトは次のとおりです。

param(
$SourcePath, $DestinationPath
)

# Display something just as a sanity check
Write-Output "Starting Setup";

# Waits to gather input
Start-Sleep -m 1000

# Connect to device
Open-Device $env:IP_Address | out-null

# Waits to establish a connection to the device
Start-Sleep -m 2000

# Copy a files to the device
Write-Output "Copying testcases and support files..."
putd $env:source\*.mp4 C:\test\MinTE | out-null
putd $env:source\*.mp3 C:\test\MinTE | out-null
putd $env:source\*.wma C:\test\MinTE | out-null
putd $env:source\*.m4a C:\test\MinTE | out-null
putd $env:source\*.amr C:\test\MinTE | out-null
putd $env:source\*.wav C:\test\MinTE | out-null
putd $env:source\*.3g2 C:\test\MinTE | out-null
putd $env:source\*.3gp C:\test\MinTE | out-null
putd $env:source\*.xml C:\test\MinTE | out-null


# Closes Connection to device
Close-Device

# Allows space for easy reading for the user
Write-Output " "
Write-Output " "
Write-Output " "
Write-Output " "

# Tells the user the script ran successfully
Write-Output "... Setup Successful (NO REBOOT REQUIRED)"

exit;

このスクリプトは、バッチ ファイル コマンドの実行時にユーザーが入力した 2 つの変数を含むバッチ ファイルを使用して呼び出されます。「.3gp」と「.3g2」を除く他のすべてのファイル タイプでテストされ、動作します。.ps1 スクリプトの任意の場所に "3" を追加すると (notpad++ を使用)、色がオレンジ色に変わり、.ps1 スクリプトの任意の場所に "gp" を追加すると (notpad++ を使用)、色が水色に変わることに気付きました。これは、これら 2 つがスイッチである可能性があることを示していますが、それが何かはわかりません。

また、エラーを再現する必要がある場合に、このスクリプトを実行するために使用されるバッチ ファイルを次に示します。

@echo off
::Conditions leading to errors if the batch script is not executed correctly
if "%1"=="" goto error1
if "%2"=="" goto error2

::Allows user to set the "Source Path" to copy the testcase files from
set source=%1
::Allows user to set the "Destination Path" to copy the testcase files from
set IP_Address=%2

:: Does a health check to ensure source path is valid
IF NOT EXIST "%source%" goto error3
:: Does a health check to ensure Device IP Address is valid
ping -n 1 -w 100 %IP_Address% 1>nul
if "%errorlevel%"=="1" goto error4

::Tells the user what the "Source" and "Destination" Paths are
echo Source Path = %1
echo Destination Path = %2
echo.
powershell.exe -File "BVT_AudioDecode_Automated.ps1" %1 %2 -NoProfile -NoExit


goto end
:error1
echo.
echo Error Syntax: BVT_AudioDecode_Setup.bat "Source_Path\AudioDecode_Testcase_Folder" "Device IP Address"
echo.
echo For example: BVT_AudioDecode_Setup.bat V:\WP\BVT\Audio\Decode 10.42.233.237
echo              -or-
echo              BVT_AudioDecode_Setup.bat C:\WP\BVT\Audio\Decode 10.42.233.237
echo.
echo.
goto end
:error2
echo.
echo Error Syntax: BVT_AudioDecode_Setup.bat "Source_Path\AudioDecode_Testcase_Folder"     "Device IP Address"
echo.
echo For example: BVT_AudioDecode_Setup.bat V:\WP\BVT\Audio\Decode 10.42.233.237
echo              -or-
echo              BVT_AudioDecode_Setup.bat C:\WP\BVT\Audio\Decode 10.42.233.237
echo.
echo.
goto end
:error3
echo.
echo Error: Invalid Path
echo %source%
goto end
:error4
echo.
echo Error: Invalid IP Address
echo %IP_Address%
goto end
:end

Open-Deviceを実行したときに、 and Putd(Put-Device の略) が他のコマンドとは異なるモジュール名を持っていることに気付きましたget-command。誰もこのリストを認識していない場合は、間違った場所に来た可能性があります。

Cmdlet          Add-FederatedDeviceHost                            TexusCmdlets
Cmdlet          Add-FederatedEnvironment                           TexusCmdlets
Cmdlet          Add-VirtualMachine                                 TexusCmdlets
Cmdlet          CD-Device                                          TexusCmdlets
Cmdlet          Close-Device                                       TexusCmdlets
Cmdlet          Cmd-Device                                         TexusCmdlets
Cmdlet          Copy-Device                                        TexusCmdlets
Cmdlet          Create-FederatedVirtualDeviceHost                  TexusCmdlets
Cmdlet          Create-Federation                                  TexusCmdlets
Cmdlet          Debug-Device                                       TexusCmdlets
Cmdlet          Del-Device                                         TexusCmdlets
Cmdlet          Deploy-Device                                      TexusCmdlets
Cmdlet          Dir-Device                                         TexusCmdlets
Cmdlet          Exec-Device                                        TexusCmdlets
Cmdlet          Filter-Result                                      TexusCmdlets
Cmdlet          Get-ChildPrimitive                                 TexusCmdlets
Cmdlet          Get-Device                                         TexusCmdlets
Cmdlet          Get-ResultSummary                                  TexusCmdlets
Cmdlet          Get-SuiteName                                      TexusCmdlets
Cmdlet          Get-TaskOutputPath                                 TexusCmdlets
Cmdlet          Get-VirtualMachineNames                            TexusCmdlets
Cmdlet          Kill-Device                                        TexusCmdlets
Cmdlet          Merge-Reports                                      TexusCmdlets
Cmdlet          MkDir-Device                                       TexusCmdlets
Cmdlet          Mount-VirtualDisk                                  TexusCmdlets
Cmdlet          Move-Device                                        TexusCmdlets
Cmdlet          Open-Device                                        TexusCmdlets
Cmdlet          Put-Device                                         TexusCmdlets
Cmdlet          Reg-Device                                         TexusCmdlets
Cmdlet          Remove-FederatedDeviceHost                         TexusCmdlets
Cmdlet          Remove-VirtualMachine                              TexusCmdlets
Cmdlet          RmDir-Device                                       TexusCmdlets
Cmdlet          Set-VirtualMachine                                 TexusCmdlets
Cmdlet          Show-Result                                        TexusCmdlets
Cmdlet          Start-VirtualMachine                               TexusCmdlets
Cmdlet          Stop-VirtualMachine                                TexusCmdlets
Cmdlet          Test-Device                                        TexusCmdlets
Cmdlet          TList-Device                                       TexusCmdlets
Cmdlet          Type-Device                                        TexusCmdlets
Cmdlet          Unmount-VirtualDisk                                TexusCmdlets
Cmdlet          Validate-FederatedDeviceHost                       TexusCmdlets
4

1 に答える 1

1

私はついに答えを見つけました!

PS U:\> get-help put-device -full

Do you want to run Update-Help?
The Update-Help cmdlet downloads the newest Help files for Windows PowerShell modules and installs them on your
computer. For more details, see the help topic at http://go.microsoft.com/fwlink ?LinkId=210614.
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

NAME
    Put-Device

SYNOPSIS
    Copies one or more files from the host machine to the connected device.

SYNTAX
    Put-Device [-Source] [<string>] [[-Destination] [<string>]] [<CommonParameters>]


DESCRIPTION
    The Put-Device cmdlet copies one or more files from the host machine to the connected device.
    Absolute paths are used as-is and relative paths are treated relative to the
    current working directory, either on the device or the host.


PARAMETERS
    -Source [<string>]
        The path of the source file(s) on the host ('*' and '?' wildcards are supported).

        Required?                    true
        Position?                    0
        Default value
        Accept pipeline input?
        Accept wildcard characters?

    -Destination [<string>]
        The path of the destination file or directory on the device.
        If omitted, the current working directory on the device will be used.

        Required?                    false
        Position?                    1
        Default value
        Accept pipeline input?
        Accept wildcard characters?

    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer and OutVariable. For more information, see
        about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).

INPUTS

OUTPUTS


RELATED LINKS

この情報を取得した後、これは問題を解決するために与えられた正しいコマンドです。

putd -Source "$env:source\*.3gp" -Destination "C:\test\MinTE" | out-null

誰かがこれから学ぶことができる場合に備えて、これを残しておきます。

于 2013-03-13T18:09:35.877 に答える