【.cmd】 バッチファイルスクリプト %15 【.bat】 (868レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.net/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
548: デフォルトの名無しさん [sage] 2024/06/17(月) 00:26:58.20 ID:BTOFB8aB むしろpowershellのほうがググれば沢山出てくるし書きやすいと思うけどね http://mevius.5ch.net/test/read.cgi/tech/1663153441/548
549: デフォルトの名無しさん [sage] 2024/06/17(月) 09:41:03.27 ID:4dsWgq6q %20とか名前付けるか Pathのマルチバイト問題は解決困難だなあ http://mevius.5ch.net/test/read.cgi/tech/1663153441/549
550: デフォルトの名無しさん [sage] 2024/06/17(月) 15:06:14.86 ID:NTaBtmxu 全角スペースがある場合は フルパスの一部にでも半角スペースが入っていれば問題が生じないので、 別名として、当該フォルダに対して、シンボリックリンクなりジャンクションを半角スペースを入れた名前で作成し、 これを経由して運用すれば、とりあえず回避はできるよ XPの頃にさんざん苦しんだのに、未だ根本的な解決がなされていないというのはモヤモヤする 環境によっては、"#"がフルパスに入るとだめというのもあるな http://mevius.5ch.net/test/read.cgi/tech/1663153441/550
551: デフォルトの名無しさん [sage] 2024/06/17(月) 16:53:21.50 ID:A2yJgFtn D&Dやめて日付順のリストファイルを作成したらどうかね エクスプローラーとメモ帳で簡単にできるでしょ http://mevius.5ch.net/test/read.cgi/tech/1663153441/551
552: デフォルトの名無しさん [] 2024/06/17(月) 23:01:16.20 ID:4L+665Jw ドラッグアンドドロップなんてバッチ処理の発想じゃねえなw http://mevius.5ch.net/test/read.cgi/tech/1663153441/552
553: デフォルトの名無しさん [] 2024/06/17(月) 23:01:56.15 ID:4L+665Jw CUIをGUIの言葉で言うのは斬新すぎる http://mevius.5ch.net/test/read.cgi/tech/1663153441/553
554: デフォルトの名無しさん [sage] 2024/06/19(水) 14:55:27.29 ID:baOC8PLn Ruby で作ってみた。 Rubyでは半角空白はエラーになるけど、全角空白は正常に動く デスクトップにショートカットを作って、 それに対して、ファイルをdrag & drop する ショートカットのリンク先は、 C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/script.rb" (@は取り除いて下さい) require 'fileutils' Sep = '-' * 40 + "\n" # separator # ファイル作成日時の古い順から処理する。 # ただし、File.(stat.)birthtime は、Linux では使えない ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ .sort_by{ |full_path| File.birthtime( full_path ) } .each do |full_path| puts Sep + full_path p birthtime = File.birthtime( full_path ) # ここに処理を書く end sleep # 出力したコマンドプロンプト画面を閉じないようにする http://mevius.5ch.net/test/read.cgi/tech/1663153441/554
555: デフォルトの名無しさん [sage] 2024/06/19(水) 21:41:48.63 ID:AL0iJITw バッチファイルでちまちま文字列処理するのは C言語でちまちま文字列処理するくらい不毛だからやめとけ http://mevius.5ch.net/test/read.cgi/tech/1663153441/555
556: デフォルトの名無しさん [sage] 2024/06/20(木) 06:56:43.32 ID:oAthcLJ7 私が普段使っているドラッグアンドドロップ用バッチのサンプルです @echo off & set a="%cmdcmdline:"=%"& set "arg=" for /f "tokens=3* delims=:" %%i in (%a%) do (set a=%%i& set b=%%j) set "a=%a:~-1%" & set b="%b::=" "%" for %%i in (%b%) do set b=%%i& call :x goto y :x if defined arg set arg=%arg:~0,-3%" set arg=%arg% "%a%:%b:~1%& exit /b :y echo コマンド %arg% pause & exit http://mevius.5ch.net/test/read.cgi/tech/1663153441/556
557: デフォルトの名無しさん [sage] 2024/06/20(木) 14:12:10.76 ID:6cw0yeSx PowerShellて別の文字でエラーになるとか聞いたけど本当? http://mevius.5ch.net/test/read.cgi/tech/1663153441/557
558: デフォルトの名無しさん [sage] 2024/07/16(火) 20:58:55.86 ID:Ho7KhNQA net session /delete の後の2回のY/N選択をコマンドで自動入力したいんだけど、どうやればいいの? http://mevius.5ch.net/test/read.cgi/tech/1663153441/558
559: デフォルトの名無しさん [sage] 2024/07/16(火) 21:44:58.97 ID:PFxavJIe >>558 応答ファイル(y+CR/LF, n+CR/LF)を作ってそれを入力とするのが常套手段だが ●Y/Nが1回の場合の例 rem ***準備 mkdir 111 2>nul echo.>111\1.txt rem ***応答ファイル作成 echo n>n.txt echo y>y.txt del Z:\111\*.*<n.txt >nul 2>&1 2回とのことなので、 echo n>n_n.txt echo n>>n_n.txt とするといけるかも(実行してないので結果不明) http://mevius.5ch.net/test/read.cgi/tech/1663153441/559
560: デフォルトの名無しさん [sage] 2024/07/17(水) 06:53:17.67 ID:gLjbT8+P ahk http://mevius.5ch.net/test/read.cgi/tech/1663153441/560
561: デフォルトの名無しさん [age] 2024/08/12(月) 12:32:10.56 ID:om8unfFL 初心者質問ですみません。ffmpegで一括再エンコードしたいと思ってバッチファイルを作ってみたのですがファイルにスペースが含まれるとエラーが出るようで困っています。どのように対処すればよいか、どなたか御教示お願い出来ませんでしょうか? @echo off cd /d %~dp0 for %%a in (*.mp4) do ( "C:\ffmpeg\bin\ffmpeg.exe" -i %%a -b:v 500k -c:a copy %%~na_500k.mp4 ) pause http://mevius.5ch.net/test/read.cgi/tech/1663153441/561
562: デフォルトの名無しさん [sage] 2024/08/12(月) 14:37:08.59 ID:NAcZpcdu >>561 引数として渡されるファイル名にスペースがある場合? それなら引数を”で囲めば行けるんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1663153441/562
563: デフォルトの名無しさん [sage] 2024/08/12(月) 19:13:11.22 ID:N4nkPpmi 有難うございます。引数を""で囲んだら上手くいきました。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/563
564: デフォルトの名無しさん [sage] 2024/10/03(木) 08:38:22.80 ID:hcouLIA5 別のスレでも質問させていただいているのですが、こちらの方が適切かと思い投稿させていただきます。 以下をbatファイルで動かそうとしてもうまく動かないのですが、どうしたら良いでしょうか。 batファイルをダブルクリックして、PowerShellを実行しています。 PowerShellのスクリプト部分は、PowerShellで動くことを確認済です。 ランダムパスワードを生成する感じです。 https://chatgpt.com/...05-98e7-18f01918f140 http://mevius.5ch.net/test/read.cgi/tech/1663153441/564
565: デフォルトの名無しさん [sage] 2024/10/03(木) 08:39:33.18 ID:hcouLIA5 リンクはこちらです https://chatgpt.com/share/66fdc027-bb18-8005-98e7-18f01918f140 http://mevius.5ch.net/test/read.cgi/tech/1663153441/565
566: デフォルトの名無しさん [sage] 2024/10/03(木) 10:24:37.73 ID:EmzEDUtK 適切だと思ったらマルチポストも辞さない http://mevius.5ch.net/test/read.cgi/tech/1663153441/566
567: デフォルトの名無しさん [sage] 2024/10/04(金) 07:40:33.06 ID:BveI+02d 以下を消したら動くようになりました。 解決です。 Param( [int]$Length = 16, [switch]$IncludeUppercase, [switch]$IncludeLowercase, [switch]$IncludeNumbers, [switch]$IncludeSymbols ) http://mevius.5ch.net/test/read.cgi/tech/1663153441/567
568: デフォルトの名無しさん [] 2024/10/12(土) 02:43:46.51 ID:fuP8Oeol iris-microという便利なソフトつかって 画面明るさ色温度かえてます バッチファイルが2種類あって この設定をきりかえつかっています ふたつのバッチファイルを 交互に繰り返すようなスクリプト作れますか プロセスがのこったりしてるようでもないので難しいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/568
569: デフォルトの名無しさん [sage] 2024/10/12(土) 16:51:48.93 ID:4VpnKVlz バッチを順番に呼び出して先頭にgotoすれば交互になるような気がします http://mevius.5ch.net/test/read.cgi/tech/1663153441/569
570: デフォルトの名無しさん [sage] 2024/10/12(土) 17:04:01.38 ID:qxhXc26A 同じbatで起動するたびにサイクリックに実行する内容を切り替えるって意味じゃないかな 何か外部にフラグみたいなもの(又は実行用にbatをコピーしてそれを呼び出す)を用意するといいんじゃないかな 同時起動の排他制御とかは個人使用ならまあ不要だろう http://mevius.5ch.net/test/read.cgi/tech/1663153441/570
571: デフォルトの名無しさん [sage] 2024/10/12(土) 17:39:10.70 ID:Iy6RGAFA 状態を持たせたいならバッチの名前を変えるという荒業もできるね http://mevius.5ch.net/test/read.cgi/tech/1663153441/571
572: デフォルトの名無しさん [sage] 2024/10/12(土) 18:07:14.49 ID:qxhXc26A 自分自身の名前は変えられないので別ファイルを用意 そもそもbat名を変えたら起動の度に別bat名で起動することになり元々の2つのbatのある状態と変わらんじゃん http://mevius.5ch.net/test/read.cgi/tech/1663153441/572
573: デフォルトの名無しさん [sage] 2024/10/12(土) 18:14:50.19 ID:Iy6RGAFA リネームは昔からあるハックだけどな 頭悪そう http://mevius.5ch.net/test/read.cgi/tech/1663153441/573
574: デフォルトの名無しさん [sage] 2024/10/12(土) 19:31:57.02 ID:d82xRt2j echo.>stat_on if exist stat_on とかでチェック用ファイルで分岐するのが手っ取り早い より汎用的にやるなら inifile.exeみたいの作るか拾うかして状態を読み書きする http://mevius.5ch.net/test/read.cgi/tech/1663153441/574
575: デフォルトの名無しさん [sage] 2024/11/06(水) 18:43:05.45 ID:KAHjZpf+ winPCで エクスプローラから 複数ファイルを バッチファイルにドロップして 拡張子付きファイル名のみ(パスなし)を 1行1ファイル名で list.txtに書き出したい どの様に? http://mevius.5ch.net/test/read.cgi/tech/1663153441/575
576: デフォルトの名無しさん [] 2024/11/06(水) 19:42:12.98 ID:0Z0sjFnd てすと.com http://mevius.5ch.net/test/read.cgi/tech/1663153441/576
577: デフォルトの名無しさん [sage] 2024/11/07(木) 07:18:54.75 ID:diE3Ipx6 >>575 @echo off & chcp 65001 set a="%cmdcmdline:"=" "%" call :x > list.txt & exit :x set a=%a:*.bat" =% for %%i in (%a:""=%) do set a=%%i& call :y exit /b :y if "%a:~1,1%"==" " set a=%a: =" "% for %%i in (%a:""=%) do echo %%~nxi list.txt は UTF-8 にしてみた バッチの拡張子は .bat http://mevius.5ch.net/test/read.cgi/tech/1663153441/577
578: デフォルトの名無しさん [] 2024/11/07(木) 10:34:25.11 ID:sTPvG4+T 初めからコマンドプロンプトでやればいいのに http://mevius.5ch.net/test/read.cgi/tech/1663153441/578
579: デフォルトの名無しさん [] 2024/11/07(木) 10:35:43.77 ID:sTPvG4+T まずは特定のフォルダにファイルを集めるという発想がないんだろうな http://mevius.5ch.net/test/read.cgi/tech/1663153441/579
580: デフォルトの名無しさん [] 2024/11/07(木) 11:01:23.05 ID:5OQwBO7R batファイルで=を含む置換えの時の方法教えてください。 入力は Hello World 12=34 @echo off set /p mystringA=あいさつ: set mystringB=%mystringA:12=34=4567% echo %mystringB% 結果をこのようにしたい Hello World 4567 http://mevius.5ch.net/test/read.cgi/tech/1663153441/580
581: デフォルトの名無しさん [sage] 2024/11/07(木) 12:14:54.61 ID:9xnRXsv4 >>580 batだけでやるには大変(=の置換は無理) 変換前に1文字ずつ判定して=だったら普通使われない文字(=とか)に変えるとかしないとできない 別の方法としては別の言語でサポートしてやれば楽 @if (0)==(0) echo off rem *** このブロックにbat内容を記述する set s=Hello World 12=34 cscript //nologo /e:jscript "%~f0" "%s%" rem for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%s%"') do set s=%%i rem echo %s% goto :eof rem *** @end //これ以降はjscriptの処理部 var data=WScript.Arguments(0).replace(/12=34/g,"4567"); WScript.StdOut.WriteLine(data); http://mevius.5ch.net/test/read.cgi/tech/1663153441/581
582: デフォルトの名無しさん [] 2024/11/07(木) 12:33:40.59 ID:5OQwBO7R >>581 サイトによって特殊文字は^だったり"を使ったりで試して出来なかった 代案をわざわざありがとうございます^^ http://mevius.5ch.net/test/read.cgi/tech/1663153441/582
583: デフォルトの名無しさん [sage] 2024/11/07(木) 13:07:58.08 ID:sK42d9tR >>577 神様ありがとう なんでかわからないけど動きました list. txtを%USERPROFILE%\Desktopに作成するにはどのようにすれば? 単純に "%USERPROFILE\Desktop\list.txt" に変更してもダメでした http://mevius.5ch.net/test/read.cgi/tech/1663153441/583
584: デフォルトの名無しさん [sage] 2024/11/07(木) 14:02:09.09 ID:DJJuXIJX エクスプローラーで「パスのコピー」あるの知ってる? windows11 なら選択後に shift+ctrl+c バッチとかいらんだろ http://mevius.5ch.net/test/read.cgi/tech/1663153441/584
585: デフォルトの名無しさん [sage] 2024/11/07(木) 16:57:38.50 ID:sK42d9tR >>577 >583 今やったらできました お騒がせしました もしよろしければ 解説お願いします http://mevius.5ch.net/test/read.cgi/tech/1663153441/585
586: デフォルトの名無しさん [] 2024/11/08(金) 02:14:23.67 ID:NHkTpL6A del /q "C:\Users\%username%\Desktop\新しいフォルダー" これで新しいフォルダー内が消えないのですが? http://mevius.5ch.net/test/read.cgi/tech/1663153441/586
587: デフォルトの名無しさん [] 2024/11/08(金) 03:03:23.20 ID:NHkTpL6A 日本語のファルダだとダメなんですかね? http://mevius.5ch.net/test/read.cgi/tech/1663153441/587
588: デフォルトの名無しさん [sage] 2024/11/08(金) 03:07:22.26 ID:8ciHN7a8 文字コードが違うんじゃないですかね http://mevius.5ch.net/test/read.cgi/tech/1663153441/588
589: デフォルトの名無しさん [] 2024/11/08(金) 03:20:42.79 ID:NHkTpL6A なるほど理解しました http://mevius.5ch.net/test/read.cgi/tech/1663153441/589
590: デフォルトの名無しさん [] 2024/11/08(金) 03:24:29.70 ID:NHkTpL6A rdコマンドで親フォルダを削除しないようにするにはどう書けば良いのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/590
591: デフォルトの名無しさん [] 2024/11/08(金) 03:36:30.13 ID:NHkTpL6A rdコマンドで無理なら対象のフォルダ以下にあるファイルやフォルダを全て削除するものでもかまいません。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/591
592: デフォルトの名無しさん [sage] 2024/11/08(金) 10:30:14.55 ID:n9fsiKUu カレント移動すれば? http://mevius.5ch.net/test/read.cgi/tech/1663153441/592
593: デフォルトの名無しさん [sage] 2024/11/08(金) 11:10:01.65 ID:PSMBlcAH フォルダーごと削除してから新規作成したほうが簡単じゃね http://mevius.5ch.net/test/read.cgi/tech/1663153441/593
594: デフォルトの名無しさん [sage] 2024/11/08(金) 11:27:40.63 ID:IbrHrevx 俺の環境だと>>586で消えるけど、/q付けないでやったらファイル削除確認メッセージが出てるか? 出てないなら中身のファイルの属性が隠しファイルになってるとか http://mevius.5ch.net/test/read.cgi/tech/1663153441/594
595: デフォルトの名無しさん [sage] 2024/11/08(金) 23:02:21.70 ID:gP+dh+BC del /q "新しいフォルダー\*" for /d %%i in ("新しいフォルダー\*") do rd /s /q "%%~i" http://mevius.5ch.net/test/read.cgi/tech/1663153441/595
596: デフォルトの名無しさん [sage] 2024/11/09(土) 11:03:02.45 ID:bVsLqwPh cd "新しいフォルダー" && 2> nul rd /s /q . http://mevius.5ch.net/test/read.cgi/tech/1663153441/596
597: デフォルトの名無しさん [] 2024/11/09(土) 11:39:56.84 ID:L7dYAlvM >>581 またつまづきました>< 入力 12&encoding=se34 56=78 これで&encoding=seを削除したくて set "s=%s:^&=%" で&を通したんですが 'encoding'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されません。 となって出来ないです set "s=%s:^encoding=%" data = data.replace(/&encoding=se/g, ""); のように加えてもダメでした どうすればいいですか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/597
598: デフォルトの名無しさん [sage] 2024/11/09(土) 13:08:18.35 ID:q8k7iVH6 宿題は自分で考えよう http://mevius.5ch.net/test/read.cgi/tech/1663153441/598
599: デフォルトの名無しさん [sage] 2024/11/09(土) 13:14:42.95 ID:L+GgUCLJ バッチでjscriptに渡す前に&が解釈されてるのかな?知らんけど できないです、どうすればいいですかではなく どこでエラーになってるか突き止めるのが先なのと 文字列処理したいなら違う言語例えばjscriptを覚えた方がよいかと http://mevius.5ch.net/test/read.cgi/tech/1663153441/599
600: デフォルトの名無しさん [sage] 2024/11/09(土) 13:21:59.27 ID:L+GgUCLJ jscriptは>>581のようにOS標準で入ってる古いjavascript 最近の構文は一部使えないがバッチよりも動作が高速で正規表現など文字列処理にも適している 他にpowershellもある http://mevius.5ch.net/test/read.cgi/tech/1663153441/600
601: デフォルトの名無しさん [sage] 2024/11/09(土) 14:09:23.50 ID:A663IrvX &はbatでの特殊記号であり、コマンドの区切りの意味がある set a=aaaa&set b=bbb&set c=ccc とか複数の命令を1行で書ける 他に&&,||もある http://mevius.5ch.net/test/read.cgi/tech/1663153441/601
602: デフォルトの名無しさん [sage] 2024/11/09(土) 14:31:25.85 ID:A663IrvX もしかして、set /p mystringA=あいさつ:で入力したときの話か? なら、""で括れ set /p "mystringA=あいさつ:" set mystringA="%mystringA:&=%" echo "%mystringA%" http://mevius.5ch.net/test/read.cgi/tech/1663153441/602
603: デフォルトの名無しさん [sage] 2024/11/09(土) 14:37:00.85 ID:A663IrvX set mystringA="%mystringA:&=%"→set "mystringA=%mystringA:&=%" http://mevius.5ch.net/test/read.cgi/tech/1663153441/603
604: デフォルトの名無しさん [sage] 2024/11/09(土) 14:43:11.36 ID:A663IrvX あと>>581はデータを引数渡し("%s%")してるので、「"」をデータ内に入れることができない ファイル渡しすれば確実だが、他に環境変数(s)で渡す場合を示しておく data=new ActiveXObject("WScript.Shell").Environment("Process")("s").replace(/12=34/g,"4567"); http://mevius.5ch.net/test/read.cgi/tech/1663153441/604
605: デフォルトの名無しさん [sage] 2024/11/09(土) 15:04:16.22 ID:A663IrvX ついでに、&について 通常は使わなくても次の行に書けばいいが 閉じた環境からのデータを引渡ししたい場合などはどうしても使わなければならない set a=1 call :sub echo %a% goto :eof :sub setlocal set /a a+=1 endlocal&set a=%a% goto :eof http://mevius.5ch.net/test/read.cgi/tech/1663153441/605
606: デフォルトの名無しさん [sage] 2024/11/09(土) 18:43:13.91 ID:L+GgUCLJ >endlocal&set a=%a% こんなキモい書き方した事ないな そもそもsetlocalだかは弊害もあるから使わずに書く事を意識した方がいいね このスレは安易に使いすぎてる http://mevius.5ch.net/test/read.cgi/tech/1663153441/606
607: デフォルトの名無しさん [sage] 2024/11/09(土) 19:20:02.72 ID:KYeqqNmx ここはキモイ人ばっかりですから問題ないです笑 http://mevius.5ch.net/test/read.cgi/tech/1663153441/607
608: デフォルトの名無しさん [sage] 2024/11/10(日) 07:08:12.44 ID:3mwMiYGo 遅延展開以外はsetlocalなんて滅多に使わんが他にどうしろと http://mevius.5ch.net/test/read.cgi/tech/1663153441/608
609: デフォルトの名無しさん [sage] 2024/11/10(日) 10:11:26.77 ID:zZSAaq07 setlocal enabledelayedexpansionは書く人多いけど endlocalで閉じてる人見たこと無い http://mevius.5ch.net/test/read.cgi/tech/1663153441/609
610: デフォルトの名無しさん [sage] 2024/11/10(日) 14:06:03.62 ID:9SnRMU05 そりゃあ終了したら効果が無くなるんだから文法マニアくらいしか書かんだろう http://mevius.5ch.net/test/read.cgi/tech/1663153441/610
611: デフォルトの名無しさん [sage] 2024/11/10(日) 18:35:44.79 ID:i0Pkbsqf サブルーチンでsetlocal enabledelayedexpansionを使ったら endlocalを書かないと呼び出すたびに環境がコピーされていって あっという間に正常に動作できなくなるさ http://mevius.5ch.net/test/read.cgi/tech/1663153441/611
612: デフォルトの名無しさん [sage] 2024/11/10(日) 19:42:53.96 ID:9SnRMU05 サブルーチンに置くというのは想定しなかったな メインの、というかスクリプトの先頭に置く使い方しかしてないや http://mevius.5ch.net/test/read.cgi/tech/1663153441/612
613: デフォルトの名無しさん [sage] 2024/11/10(日) 20:44:53.21 ID:Hbc3IhS3 call先にsetlocalがあってもexit /bやgoto :eofで戻ると 変数復元されるのでendlocalは不要だが有ってもいい やばいのはforやgotoでのループ内部にsetlocalしかないやつ http://mevius.5ch.net/test/read.cgi/tech/1663153441/613
614: デフォルトの名無しさん [] 2024/11/10(日) 21:35:28.96 ID:p0BF9o8N >>604 ありがとう。 何時間かやってるけどうまくいかないです。 ?@if (0)==(0) echo off rem *** :start ?set /p "ss=ss:" ?set "ss=%ss:&=%" ?set /p "savename=保存名:" ?set ss=%ss% option "%savename%" ?echo %ss%確認1 ?cscript //nologo /e:jscript "%~f0" "%URL%" rem ***for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%ss%"') do set ss= %%i ?echo %ss%確認2 goto :start rem *** ?@end // JScript部分 // var data = WScript.Arguments(0); ?data=new ActiveXObject("WScript.Shell").Environment("Process")("ss"); ?data = data.replace(/aaaaa/g, "bbbbb"); ?data = data.replace(/12=34/g, "56=78"); ?data = data.replace(/encoding=seg/g, ""); ?WScript.StdOut.WriteLine(data); ?WScript.Quit(); これでやると?で?〜?が無視される。 ?にvarという変数を与えても同じ。 ?をdata = WScript.Arguments(0);にすると与えた入力が途中で途切れる(実際の入力値に”が入ってるため) ?の代わりにfor文だとbatが落ちる(AppleWebKit/537.36 の使い方が誤っています。) こういうのをスラスラ書ける天才たちがうらやましい。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/614
615: デフォルトの名無しさん [sage] 2024/11/10(日) 22:06:03.40 ID:zZSAaq07 forの中の"%ss%"を削除すれば? http://mevius.5ch.net/test/read.cgi/tech/1663153441/615
616: デフォルトの名無しさん [sage] 2024/11/10(日) 22:08:14.92 ID:cLh8//6O うーんよく判らんけど もう入力データはjscipt内でWScript.StdIn.ReadLine();からで拾ってきた方が早くね?とか バッチはjsciptの呼び出し部分だけ残して全部jscriptでやった方が楽じゃね?とは思った http://mevius.5ch.net/test/read.cgi/tech/1663153441/616
617: デフォルトの名無しさん [sage] 2024/11/10(日) 22:19:31.51 ID:zZSAaq07 ファイル名として使っちゃダメな文字(又はデバイス名)ってのもあるので そういうのが入力されたら別文字に変えるとか削除するとかしないとダメになるぞ http://mevius.5ch.net/test/read.cgi/tech/1663153441/617
618: デフォルトの名無しさん [sage] 2024/11/10(日) 23:54:47.86 ID:cLh8//6O 上で言った楽なやつね。叩き台としてどうかな @if (0)==(0) echo off set ss= :start echo %ss%確認1 rem cscript //nologo /e:jscript "%~f0" "%ss%" for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%ss%"') do set ss=%%i echo %ss%確認2 goto :start @end // JScript部分 var data = ""; if (WScript.Arguments.Count() > 0) { // 渡された引数がある data = WScript.Arguments(0); if (data != "") { WScript.StdErr.WriteLine("渡された引数:" + data); } } WScript.StdErr.Write("ss:"); // バッチのfor入力から除外するためプロンプトをエラー出力で表示 var ss = WScript.StdIn.ReadLine(); WScript.StdErr.Write("保存名:"); data = WScript.StdIn.ReadLine(); data = data.replace(/aaaaa/g, "bbbbb"); data = data.replace(/12=34/g, "56=78"); data = data.replace(/encoding=seg/g, ""); WScript.StdOut.WriteLine(data); http://mevius.5ch.net/test/read.cgi/tech/1663153441/618
619: デフォルトの名無しさん [sage] 2024/11/11(月) 00:41:06.56 ID:ggA4ksL2 "%ss%"を引数につけてると 入力に"を入れられると二週目からエラーとなる http://mevius.5ch.net/test/read.cgi/tech/1663153441/619
620: デフォルトの名無しさん [sage] 2024/11/11(月) 00:55:30.51 ID:ggA4ksL2 入力データから"を削除するようにしたほうがいい ファイル名にも"は使えないから必要ないだろ それと基本文字列を扱う場合は""で括ること echo %ss%→echo "%ss%" じゃないと、&|などでエラーになるし、^も消えるとかいろいろ起きる (a^b.txtは正常なファイル名) http://mevius.5ch.net/test/read.cgi/tech/1663153441/620
621: デフォルトの名無しさん [sage] 2024/11/11(月) 01:34:01.29 ID:ggA4ksL2 "%ss%"でエラーになってるのはbatでの構文解釈時なのでjscriptでの対処云々以前の問題 http://mevius.5ch.net/test/read.cgi/tech/1663153441/621
622: デフォルトの名無しさん [] 2024/11/11(月) 02:13:27.56 ID:BY3zyfqu みなさんありがとう。 理想なのができたので、まず、 ?をfor /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" ') do set ss= %%i >>615 ありがとう。たったこれだけだったよ >>616,618 文字制限で入力ができなかった。 でもそういうやり方もあるんだと学べたのでありがとう >>619,620,621 このbatの後に渡されるexeの処理に””で括っておかないとexeのほうでエラーになる ちゃんとそこを伝えれてなかったね、ごめん 回答してくれてありがとう これWScript.StdIn.ReadLine();をchat gptで文字制限を聞いたら?のような入力方法だったよ とはいえ、ありがとうございました>< http://mevius.5ch.net/test/read.cgi/tech/1663153441/622
623: デフォルトの名無しさん [] 2024/11/11(月) 03:53:20.62 ID:vS/DyEQP batというプログラミング初めてです。 初心者に良いサイト教えてください。 Windows 10です。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/623
624: デフォルトの名無しさん [sage] 2024/11/11(月) 04:28:35.50 ID:UKR+WOTm >>623 www.google.co.jp http://mevius.5ch.net/test/read.cgi/tech/1663153441/624
625: デフォルトの名無しさん [] 2024/11/13(水) 02:26:15.40 ID:AkCTz+Wd BATでこんなすごいことできるぞってのを教えてくださいハゲども http://mevius.5ch.net/test/read.cgi/tech/1663153441/625
626: デフォルトの名無しさん [sage] 2024/11/13(水) 02:26:54.33 ID:HWwn2oWP >>622 すっかり忘れてたけど "tokens=*"じゃ先頭が半角スペースやタブだと消えるし、セミコロンだとスキップされるという問題があった バッチはクセがありすぎる eolのデフォルトが;で、しかも"eol="だと今度は"が指定されたことになるとかウソーって言いたい for /f delims^=^ eol^= %%i in ('cscript //nologo /e:jscript "%~f0"') do set ss=%%i http://mevius.5ch.net/test/read.cgi/tech/1663153441/626
627: デフォルトの名無しさん [] 2024/11/14(木) 11:47:50.65 ID:oC8TllJp @echo off set T=%tmp%\tmp.txt type nul>%T% for %%f in (%*) do ( >>%tmp%\tmp.txt echo %%~nxf ) type %T% | clip これだと正常に取得できません 正常にファイル名を取得できるようにするにはどう書けばいいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/627
628: デフォルトの名無しさん [sage] 2024/11/14(木) 11:50:39.07 ID:WvtXCkNi 他の「ふつう」の環境選ぶのがええよ http://mevius.5ch.net/test/read.cgi/tech/1663153441/628
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 240 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s