2013-03-13 24 views
0

我不確定爲什麼這個問題已經關閉並且得到了分數,但是如果沒有人能夠回答它,那麼是否有人能夠指向我可以得到這個答案的方向?謝謝。這裏又是:需要複製擴展名爲.3GP的文件

該文件不復制Get-ChildItemCopy-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在連接到設備時不起作用。它們無法識別爲cmdlet函數。下面是完整的腳本來得到一個想法:

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; 

此腳本執行批處理文件命令時,使用兩個變量輸入一個批處理文件被用戶調用。它已經過測試,可用於除.3gp和.3g2之外的所有其他文件類型。我注意到,在.ps1腳本的任何位置添加「3」(使用notpad ++)時,顏色會變爲橙色,並且在.ps1腳本的任何位置添加「gp」(使用notpad ++)會將顏色更改爲淺藍色。這告訴我這兩個可能是開關,但我不知道是什麼。

而且,這裏是用在了需要重現錯誤執行該腳本的批處理文件:

@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-DevicePutd(簡稱把設備)具有不同的模塊名稱比當我運行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 
+0

什麼是「Texus」?我找不到任何通過Google提及的公司或本文。它是一個自定義的PSSnapin或模塊,如果是的話,爲什麼它在Microsoft命名空間? – alroc 2013-04-08 11:25:28

回答

0

我終於找到答案!

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 

我會在任何情況下,離開這個最多可學習一下。