批處理新手入門導讀[視頻教程]批處理基礎視頻教程[視頻教程]VBS基礎視頻教程
[批處理文件精品]批處理版照片整理器[批處理文件精品]純批處理備份&還原驅動在線第三方下載
返回列表 發帖

[問題求助] bat的代碼能轉成ps1么

bat限制太多了,想試試powershell
  1. @echo off
  2. :loop
  3. if "%~1"=="" goto :done
  4. if not exist "%~1\*.ico" goto :err
  5. del "%~1\desktop.ini" /f /q /ah 1>nul 2>nul
  6. set "dir=%~1"
  7. pushd "%dir%"
  8. for /f "delims=" %%a in ('dir /a-d/b *.ico') do set "icon=%%~nxa"
  9. (echo [.ShellClassInfo]
  10. echo IconResource=%icon%
  11. echo [ViewState]
  12. echo Mode=
  13. echo Vid=
  14. echo FolderType=Pictures
  15. )>"%dir%\desktop.ini"
  16. attrib +s +h "%dir%\desktop.ini"
  17. attrib +s +h "%icon%"
  18. attrib +r /d "%dir%"
  19. popd
  20. goto :next
  21. :err
  22. echo;找不到文件 - %~nx1
  23. :next
  24. shift
  25. goto :loop
  26. :done
  27. echo;
  28. pause
復制代碼

本帖最后由 ivor 于 2019-11-11 16:55 編輯
  1. function err {
  2.     param (
  3.         [string]$file
  4.     )
  5.     "找不到文件 - {0}" -f $file
  6. }
  7. foreach ($arg in $args) {
  8.     if (![System.IO.File]::Exists($arg.ToString()+"\*.ico")) {
  9.         err(([System.IO.FileInfo]$arg.ToString()).Name)
  10.         continue
  11.     }
  12.     Remove-Item $arg+"\desktop.ini" -Force
  13.     $dir = $arg
  14.     Push-Location $arg
  15.     foreach ($item in (Get-ChildItem -File *.ico)) {
  16.         $icon = $item.Name
  17.     }
  18.     '[.ShellClassInfo]
  19.         IconResource={0}
  20.         [ViewState]
  21.         Mode=
  22.         Vid=
  23.         FolderType=Pictures
  24.     ' -f $icon | Out-File -FilePath $dir+"\desktop.ini"
  25.     attrib +s +h $dir+"\desktop.ini"
  26.     attrib +s +h "%icon%"
  27.     attrib +r /d $dir
  28.     Pop-Location
  29. }
復制代碼
解決方案,優先使用powershell。

TOP

返回列表
36选7开奖结果今天福建 江西十一选五遗漏号码多少期 好彩1最新预测 股票指数什么意思有什么功能 一分钟快三计划网页版 体彩中奖了在哪里领奖 江西11选五5奖金 河北十一选五玩法介绍 哪个时时彩平台有快三 短线股票推荐低价 湖南快乐十分logo 好彩1网上投注 股票推荐000977 三分彩怎么算走势 百度发布理财平台 泳坛夺金如何中奖 北京11选5怎么算中奖