我不確定爲什麼這個問題已經關閉並且得到了分數,但是如果沒有人能夠回答它,那麼是否有人能夠指向我可以得到這個答案的方向?謝謝。這裏又是:需要複製擴展名爲.3GP的文件
該文件不復制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在連接到設備時不起作用。它們無法識別爲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-Device
和Putd
(簡稱把設備)具有不同的模塊名稱比當我運行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
什麼是「Texus」?我找不到任何通過Google提及的公司或本文。它是一個自定義的PSSnapin或模塊,如果是的話,爲什麼它在Microsoft命名空間? – alroc 2013-04-08 11:25:28