我正在创建一个批处理脚本来执行robocopy
功能。当前,我必须调用两个不同的PowerShell选项,一个用于文件名,然后一个用于源文件夹,我可以结合使用吗?
使用下面的代码,我可以捕获文件名,但是可以使用一种方法捕获两者吗?
echo Select your file
set pwshcmd=powershell -NoProfile -Command "&{[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null;$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog; $OpenFileDialog.ShowDialog()|Out-Null; $OpenFileDialog.SafeFileName}"
for /f "delims=" %%I in ('%pwshcmd%') do (
set "FileName=%%I"
)
echo %FileName%
pause
我希望用户使用PowerShell进行选择,并设置两个变量%FileName%
和%FilePath%
,因为它将在robocopy
脚本中使用。
答案 0 :(得分:0)
我感谢大家在这个问题上的投入。我在发布后不久就解决了它,但是我确实遇到了这样一个事实,即robocopy想要一个不带结尾“ \”的目录路径。收集两条路径的方法是:
for /f "delims=" %%I in ('%pwshcmd%') do (
set "r_copy_file_source_path=%%~dpI"
set "r_copy_file_source=%%~nxI"
)
这为我提供了两个必需的变量,然后用以下命令从路径中剪掉结尾的“ \”:
set r_copy_file_source_path=%r_copy_file_source_path:~0,-1%
再次,我感谢您的答复!谢谢!