我尝试使用
对一组子目录中按字母顺序排列的第一个文件执行命令for /R "parentfolder" %%a in (*.doc) do "%winword%" /mRTF "%%a"
在批处理文件中。实际的命令和宏工作正常,但它对目录中的每个文件执行操作,而不仅仅是我想要的文件。
有没有办法在这个上下文中设置-on标志?
任何帮助都将受到高度赞赏。
谢谢你让我更进一步。
目前我正在努力打开单词并通过PowerShell运行宏。我的代码现在看起来像这样:
$word = new-object -comobject word.application
$path = 'C:\Users\---\Desktop\Download\'
$folders = Get-ChildItem -Path $path -recurse | SELECT Attributes, Name | where-Object{ $_.Attributes -eq 'Directory'} | ForEach-Object{$_.name}
foreach ($folder in $folders){
Get-ChildItem -Path $path$folder |
Select-Object -First 1 |
ForEach-Object { notepad $_.FullName }
}
我尝试将记事本更改为单词并调用宏,但到目前为止没有运气
答案 0 :(得分:0)
以下是在PowerShell中执行此操作的方法。我使用了notepad.exe,但你可以使用你想要的任何东西。
Get-ChildItem -Path '../' -Filter '*.doc' |
Select-Object -First 1 |
ForEach-Object { notepad "$_.FullName" }
如果您 - 必须从cmd shell .bat脚本执行此操作,您可以:
powershell -NoProfile -Command Get-ChildItem -Path '../' -Filter '*.doc' ^| ^
Select-Object -First 1 ^| ^
ForEach-Object { notepad \"$($_.FullName)\" }
HT到mklement0进行转义。
答案 1 :(得分:0)
根据您的示例代码和后续注释,下面的示例可能会在您需要的每个文件上运行Word宏:
SetLocal EnableDelayedExpansion
For /D %%A In ("parentfolder\*") Do (Set "_="
For /F "Delims=" %%B In ('Dir/B/A-D-S-L/O-N "%%A\*.doc" 2^>Nul'
) Do Set "_=%%B"
If Defined _ "%winword%" /mRTF "%%A\!_!")